0

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

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。

4

1 回答 1

2

list1[['a']] + 5

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

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

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

你在找什么?

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

于 2013-06-14T23:49:01.810 回答