R 教科书继续提倡使用 lapply 而不是循环。即使对于带有参数的函数,这也很容易
lapply(somelist, f, a=1, b=2)
但是如果参数根据列表元素而变化呢?假设我的 somelist 包括:
somelist$USA
somelist$Europe
somelist$Switzerland
加上有anotherlist
相同的地区,我想使用 lapply 这些不断变化的论点?例如,当 f 是比率计算时,这可能很有用。
lapply(somelist, f, a= somelist$USA, b=anotherlist$USA)
除了循环之外,还有其他方法可以有效地穿过这些区域吗?
编辑:我的问题似乎是我试图使用以前编写的没有索引的函数......
ratio <-function(a,b){
z<-(b-a)/a
return(z)
}
这导致
lapply(data,ratio,names(data))
这是行不通的。也许其他人也可以从这个错误中吸取教训。