从列表中获取它所放入的确切形式的值

时间:2013-06-14 23:30:35

标签: r

当我在列表中放置一个值时,以一种相同的形式检索值的一致方法是什么?

list1 <- list('a'=1, 'b'=2)
list2 <- list('a'=11, 'b'=22, 'c'=33)
listOfLists <- list()
listOfLists <- c(listOfLists, list('first' = list1))
listOfLists <- c(listOfLists, list('second' = list2))

list1['a'] + 5 # should be 6
listOfLists['second']['a'] # should be 11

我假设我必须在某个函数f中包含最后两个调用。像f(f(listOfLists['second'])['a'])一样。 f需要做什么?

注意:在实际代码中,我是以编程方式添加项目,因此我希望将名称保留为字符串以保持示例适用。

编辑:正如Gavin所说,解决方案是使用双括号list1 ['a'] + 5.

1 个答案:

答案 0 :(得分:2)

list1[['a']] + 5

> list1[['a']] + 5
[1] 6

listOfLists[['second']][['a']]

> listOfLists[['second']][['a']]
[1] 11

你在找什么?

即。 [[不是[。后者([)返回包含所选组件的列表,而[[返回所选组件内的内容 - 即实际组件。