“使用函数”;猫;加上;复制;在R
有没有一种方法可以将R中的函数“cat”和函数“replicate”结合起来 我想看看R在某个特定时刻已经做了多少个“循环”。然而,我宁愿使用“复制”,而不是使用“for”循环。请参见下面的简单示例:“使用函数”;猫;加上;复制;在R,r,for-loop,cat,replicate,R,For Loop,Cat,Replicate,有没有一种方法可以将R中的函数“cat”和函数“replicate”结合起来 我想看看R在某个特定时刻已经做了多少个“循环”。然而,我宁愿使用“复制”,而不是使用“for”循环。请参见下面的简单示例: Data <- rnorm(20,20,3) # with for loop N <- 1000 outcome <- NULL for(i in 1:N){ Data.boot <- sample(Data, replace=TRUE)
Data <- rnorm(20,20,3)
# with for loop
N <- 1000
outcome <- NULL
for(i in 1:N){
Data.boot <- sample(Data, replace=TRUE)
outcome[i] <- mean(Data.boot)
cat("\r", i, "of", N)
}
#the same but with replicate
f <- function() {
Data.boot <- sample(Data, replace=TRUE)
outcome <- mean(Data.boot)
return(outcome)
}
replicate(N, f())
Data您可以通过以下方式使用作用域:
i = 0
f <- function() {
Data.boot <- sample(Data, replace=TRUE)
outcome <- mean(Data.boot)
i <<- i + 1
print(i)
return(outcome)
}
i=0
f作为替代,您可以使用sapply而不是replicate:
Data <- rnorm(20,20,3)
N <- 1000
f <- function(i) {
Data.boot <- sample(Data, replace=TRUE)
cat("\r", i, "of", N)
mean(Data.boot)
}
outcome <- sapply(1:N, f)
数据
outcome <- plyr::raply(N, mean(sample(Data, replace = TRUE)), .progress = "text")