这篇文章是基于这个问题:( 迭代列表以获得其名称的价值)
我会在这里重现它:
test_list <- list(list("name"="A","property"=1),
list("name"="B","property"=2),
list("name"="C","property"=3))
Run Code Online (Sandbox Code Playgroud)
最初的OP发现:
sapply(test_list, `$`, "property")
Run Code Online (Sandbox Code Playgroud)
只返回NULL值.如果使用[[jogo评论时,它会给出正确的结果:
> sapply(test_list, `$`, "property")
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
> sapply(test_list, `[[`, "property")
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
这也行不通:
> sapply(test_list, function(x, y) `$`(x, y), y = "property")
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
Run Code Online (Sandbox Code Playgroud)
然而,无论是$和[[工作的一个单独的元素test_list:
> `$`(test_list[[1]], 'property')
[1] 1
> `[[`(test_list[[1]], 'property')
[1] 1
Run Code Online (Sandbox Code Playgroud)
当我用作lapply/sapply的参数时,我想知道为什么$和[[表现不同FUN=.