s*********e 发帖数: 1051 | | k*******a 发帖数: 772 | 2 why not just use lapply to return a list of results | t******e 发帖数: 16 | 3 每个循环里面,有对data的resample、fit model、predict,这些怎么往lapply里面塞?
求示范。
不过,pcols可以放在循环里面,在每一步结束的时候存结果,用来避免生成p1、p2的
技术问题。
请高手解释一下,为什么do.call('cbind',plist)和直接cbind(plist)出来的结果不一
样?帮助文件说得很含糊。
【在 k*******a 的大作中提到】 : why not just use lapply to return a list of results
| k*******a 发帖数: 772 | 4 比如楼主的例子可以直接用
plist <- lapply(1:10, function(x) {
set.seed(x)
smp <- Boston[sample(1:nrow(Boston), nrow(Boston), replace = TRUE), ]
glm <- glm(medv ~ ., data = smp)
predict(glm, Boston)
})
cbind函数应该输入一系列的vector,所以作用到plist, 因为他是list, 所以把它当
vector来了,最后就得到一列的data frame, 这个函数的argument是不定的,所以是
cbind(...)
do.call("cbind", plist)就是把 plist里面的每个element当作一个argument,所以相
当于 cbind(plist[[1]], plist[[2]],...)
塞?
【在 t******e 的大作中提到】 : 每个循环里面,有对data的resample、fit model、predict,这些怎么往lapply里面塞? : 求示范。 : 不过,pcols可以放在循环里面,在每一步结束的时候存结果,用来避免生成p1、p2的 : 技术问题。 : 请高手解释一下,为什么do.call('cbind',plist)和直接cbind(plist)出来的结果不一 : 样?帮助文件说得很含糊。
| t******e 发帖数: 16 | 5 mark!
谢谢详尽回复
【在 k*******a 的大作中提到】 : 比如楼主的例子可以直接用 : plist <- lapply(1:10, function(x) { : set.seed(x) : smp <- Boston[sample(1:nrow(Boston), nrow(Boston), replace = TRUE), ] : glm <- glm(medv ~ ., data = smp) : predict(glm, Boston) : }) : cbind函数应该输入一系列的vector,所以作用到plist, 因为他是list, 所以把它当 : vector来了,最后就得到一列的data frame, 这个函数的argument是不定的,所以是 : cbind(...)
| s*********e 发帖数: 1051 | 6 只是练练手,用一用assign()和mget()。不必太深究。 | w********m 发帖数: 1137 | 7 代码漂亮,closure用的很好,发个包子感谢
【在 k*******a 的大作中提到】 : 比如楼主的例子可以直接用 : plist <- lapply(1:10, function(x) { : set.seed(x) : smp <- Boston[sample(1:nrow(Boston), nrow(Boston), replace = TRUE), ] : glm <- glm(medv ~ ., data = smp) : predict(glm, Boston) : }) : cbind函数应该输入一系列的vector,所以作用到plist, 因为他是list, 所以把它当 : vector来了,最后就得到一列的data frame, 这个函数的argument是不定的,所以是 : cbind(...)
|
|