Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“使用函数”;猫;加上;复制;在R_R_For Loop_Cat_Replicate - Fatal编程技术网

“使用函数”;猫;加上;复制;在R

“使用函数”;猫;加上;复制;在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)

有没有一种方法可以将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)
      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")