r - 在 R 中使用函数 "cat"和 "replicate"

标签 r for-loop cat replicate

有没有办法在 R 中将函数“cat”与函数“replicate”结合起来?

我想查看 R 在特定时刻已经进行的“循环”数量。然而,我更喜欢使用“replicate”,而不是使用“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())

因此,任何如何使用“replicate”实现函数“cat”的想法(以及其他方法来查看使用“replicate”执行感兴趣的函数的次数)都将非常感激。谢谢!

最佳答案

作为替代方案,您可以使用 sapply 而不是复制:

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)

或者,使用 plyr,您可以将 raply 与进度选项结合使用(如果您的主要目的是查看进度):

outcome <- plyr::raply(N, mean(sample(Data, replace = TRUE)), .progress = "text")

关于r - 在 R 中使用函数 "cat"和 "replicate",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30792288/

相关文章:

linux - 为什么 echo `cat file` 会丢失所有格式?

r - 将图像与 r 中的数据框连接起来

r - 桑基网络手动换色

html - rvest:如何查找 HTML 页面中使用的所有类?

c# - 一维数组中的条件语句

c - 增加字符串值的数字末尾

r - R “for loop”错误消息{}

linux - 对所有文件进行分类,并在一个字符前添加一个标签作为文件名

linux - Bash:将字符串添加到文件末尾而不换行

r - R核心的 `split`函数背后的算法是什么?