这可能是微不足道的但有人可以帮我这个吗?
我一直在使用apply来调用一个返回列表的函数
l <- apply(df, 1, manydo)
; manydo函数返回一个列表(“a”= a,“b”= b)
输出l似乎是列表的列表,因为当我键入str(l)
时,它返回
List of 5
$ 1:List of 2
..$ a: Named num [1:36] 3.29 3.25 3.36 3.26 3.34 ...
.. ..- attr(*, "names")= chr [1:36] "V1" "V2" "V3" "V4" ...
..$ b: Named num [1:36] 0.659 0.65 0.672 0.652 0.669 ...
我试图以多种方式访问它,例如
l[1][1]
or l[1]['a']
unlist(l[1][1]['a'])
但没有任何作用。我想要的是能够获得第一个元素和'a'变量吗? 另外,如果我直接调用函数说:
l <- manydo(c(1:36)) # I can access this
l['a'] # this works, so I'm confuse ;(
谢谢!
答案 0 :(得分:2)
[
返回包含所选元素的列表。 [[
会返回一个元素(未包含在列表中),因此您想在此处使用它。
l <- list(list(a=1:10, b=10:22), list(), list(), list(), list())
str(l)
## List of 5
## $ :List of 2
## ..$ a: int [1:10] 1 2 3 4 5 6 7 8 9 10
## ..$ b: int [1:13] 10 11 12 13 14 15 16 17 18 19 ...
...
现在要检索a
:
l[[1]][['a']]
[1] 1 2 3 4 5 6 7 8 9 10
l[[1]]
是包含a
的列表。 l[[1]][['a']]
是a
本身的价值。