在R中重复以下代码n次

Posted

技术标签:

【中文标题】在R中重复以下代码n次【英文标题】:repeat the the following code n times in R 【发布时间】:2022-01-13 17:43:24 【问题描述】:

大家好,我想将代码重复 n 次,并将 x 的结果保存到 R 程序中的向量中。你能帮忙用 R 写这个吗?

x<-c()
i<-1
y<-c()
repeat 
    
    x[i]<-runif(1)
    i=i+1
    if(sum(x)>1) 
      break
    
  

x

【问题讨论】:

【参考方案1】:

最简单的方法是使用replicate。首先将您的代码转换为函数:

myfunction <- function() 
  x <- c()
  i <- 1
  repeat 
    x[i] <- runif(1)
    i <- i + 1
    if(sum(x) > 1) 
         return(x)
      break
    
  

请注意,我们必须从函数中显式返回 x。现在使用 replicate 多次运行该函数:

set.seed(42)   # Use for repeatability of the example
results <- replicate(10, myfunction())

现在results 是一个列表,每次运行都是一个单独的元素:

results[[1]]
# [1] 0.9148060 0.9370754
sapply(results, length)   # How many elements in each run
# [1] 2 2 2 3 2 2 3 2 2 2
sapply(results, sum)      # What was the sum of each run
#  [1] 1.851881 1.116587 1.160841 1.528247 1.162807 1.653784 1.657736 1.095714 1.035330 1.042742

【讨论】:

谢谢你,这是一个很好的答案

以上是关于在R中重复以下代码n次的主要内容,如果未能解决你的问题,请参考以下文章

以下两次重复的复杂性是不是相同?

正则表达式:匹配单个数字重复n次

R:如何在 R 中的两个重复项之间包含一个字符?

角度重复 <span> n 次

Emacs 重复字符串 n 次

在 Scala 中有效地重复一个字符/字符串 n 次