在不使用for循环的情况下,将函数重复应用于相同数据集并给出最终结果的最有效方法是什么?例如
set.seed(123)
# create arbitrary data frame
mydf <- data.frame(a = rbinom(10, 5, .5), b = rbinom(10, 8, .5))
# silly function
Foo <- function(df) {
df <- df * (1 + rnorm(1,0, .1))
df <- df + 5
df
}
# repeat function 5 times in a row on the same data frame
for (i in c(1:5)) {
mydf <- Foo(mydf)
mydf
}
@nrussel回答;对于给出的示例,usingRecall()
提供了最优雅的代码。在速度方面,它类似于for
循环。
doFoo <- function(df, n) {
if (n == 0) return(df)
Recall(Foo(df), n - 1)
}
doFoo(mydf, 5)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句