R按名称字符串

时间:2016-03-29 18:36:51

标签: r

我有一个清单

myList=list(a=1,b=2)
> names(myList)
[1] "a" "b" 

我想通过字符串名称从myList中选择元素。

for (name in names(myList)){
     print (myList$name)
}

这不起作用,因为name =“a”,“b”。我的选择行实际上是说myList $“a”和myList $“b”。我也尝试过:

print (myList$get(name))
print (get(paste(myList$,name,sep="")))

但没有奏效。非常感谢你能告诉我怎么做。

2 个答案:

答案 0 :(得分:6)

$执行完全匹配和部分匹配,myList$name等同于

`$`(myList, name)

正如@Frank指出的那样,第二个参数name不会被评估,但会被视为文字字符串。试试?`$`并查看该文档。

在你的例子中。 myList$name会尝试在name

中查找myList元素

这就是您需要myList[[name]]

的原因

答案 1 :(得分:1)

我想你想要这样的东西:

for (name in names(myList)) {
   print(myList[[name]]) 
}