根据位置删除跨数据框的列
Deleting column across data frames depending on location
我有一组数据框对应于下面的示例:
df1 <- data.frame(id=1:10, relevant_values=11:20, rubbish = runif(n = 10),
important_as_well = 11:20)
df2 <- data.frame(id=1:10, something_important=11:20, not_relevant = runif(n = 10))
df3 <- data.frame(id=1:10, may_be_valid=11:20, nonsense = runif(n = 10),
crucial=11:20)
我想循环浏览这些数据集并删除列 rubbish
、not_relevant
和 nonsense
。这些列始终位于数据集中的相同位置,3
与上例相同,但名称不同。
您可以使用负索引删除第三列:
df1 <- df1[, -3]
df2 <- df2[, -3]
df3 <- df3[, -3]
我建议不要以编程方式遍历和访问这些变量,如果您想对每个变量执行相同的操作,建议您将它们保存在一个列表中。但是,如果您确实想访问它们,可以使用 get
和 assign
:
var_names <- paste0("df", 1:3)
lapply(var_names, function(n) assign(n, get(n)[, -3]))
我有一组数据框对应于下面的示例:
df1 <- data.frame(id=1:10, relevant_values=11:20, rubbish = runif(n = 10),
important_as_well = 11:20)
df2 <- data.frame(id=1:10, something_important=11:20, not_relevant = runif(n = 10))
df3 <- data.frame(id=1:10, may_be_valid=11:20, nonsense = runif(n = 10),
crucial=11:20)
我想循环浏览这些数据集并删除列 rubbish
、not_relevant
和 nonsense
。这些列始终位于数据集中的相同位置,3
与上例相同,但名称不同。
您可以使用负索引删除第三列:
df1 <- df1[, -3]
df2 <- df2[, -3]
df3 <- df3[, -3]
我建议不要以编程方式遍历和访问这些变量,如果您想对每个变量执行相同的操作,建议您将它们保存在一个列表中。但是,如果您确实想访问它们,可以使用 get
和 assign
:
var_names <- paste0("df", 1:3)
lapply(var_names, function(n) assign(n, get(n)[, -3]))