相关疑难解决方法(0)

使用"$"功能进行补偿

我在hadley的功能指南中经历了一些例子,并遇到了意想不到的问题.

假设我有一个模型对象列表,

x=1:3;y=3:1; bah <- list(lm(x~y),lm(y~x))
Run Code Online (Sandbox Code Playgroud)

并希望从每个中提取一些东西(如hadley关于名为"试验"的列表的问题所示).我期待其中一个工作:

lapply(bah,`$`,i='call') # or...
lapply(bah,`$`,call)
Run Code Online (Sandbox Code Playgroud)

但是,这些返回null.好像我没有滥用这个$功能,因为这些东西有效:

`$`(bah[[1]],i='call')
`$`(bah[[1]],call)
Run Code Online (Sandbox Code Playgroud)

无论如何,我只是把它作为一个练习,我很好奇我的错误.我知道我可以使用匿名函数,但认为必须有一种方法来使用类似于我最初的非解决方案的语法.我已经看过了$所提到的地方?Extract,但没有看到任何明显的解释.

我才意识到这有效:

lapply(bah,`[[`,i='call')
Run Code Online (Sandbox Code Playgroud)

还有这个

lapply(bah,function(x)`$`(x,call))
Run Code Online (Sandbox Code Playgroud)

也许这只是归结为一些lapply需要匿名功能而不需要任何功能的伏都教?我觉得我以前在某个地方听说过.

r lapply

8
推荐指数
1
解决办法
248
查看次数

标签 统计

lapply ×1

r ×1