使用 paste0 名称引用数据框中的列

3

我有一个由循环创建的名为paste0(i, "_SA")的数据框。我想打印第四列,但既不能使用$也不能用[,4]。 paste0(i, "_SA")[,4]会出现错误"维度不正确",即使在循环外使用像US_SA[,4]这样的语法也能正常工作。如何引用名为paste0的数据框的列?


@samadhi 不行,不会起作用。 - akrun
它会起作用的。将 ` 包围列名并使用 $ 获取列。我刚测试过。 - sm925
@samadhi 只有当你的数据集对象名称为 paste0(i, "_SA") 时才能使用。OP要求动态替换 i,而且OP已经提到了 if I use this outside of the loop like US_SA[,4] it works - akrun
这是问题中所说的。有一个名为 paste0(i, "_SA") 的数据框。 - sm925
1个回答

3
我们可以使用get方法获取对象的值。
for(i in c("US", "UK")) {
       print(get(paste0(i, "_SA"))[, 4])
  }

在使用 mget 进行paste操作后,也可以将其加载到一个 list中(因为paste是矢量化的)。

lst1 <- mget(paste0(c("US", "UK"), "_SA"))

1
成功了!非常感谢!! - ozlem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接