R - 在同一数据集上使用函数 n 次
R - use function n times on the same data set
在不使用 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 回答;对于给出的示例,使用 Recall()
给出了最优雅的代码。在速度方面,它类似于 for
循环。
doFoo <- function(df, n) {
if (n == 0) return(df)
Recall(Foo(df), n - 1)
}
doFoo(mydf, 5)
在不使用 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 回答;对于给出的示例,使用 Recall()
给出了最优雅的代码。在速度方面,它类似于 for
循环。
doFoo <- function(df, n) {
if (n == 0) return(df)
Recall(Foo(df), n - 1)
}
doFoo(mydf, 5)