Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_For Loop_Repeat - Fatal编程技术网

如何在循环中执行循环并将其保存在r中的表中

如何在循环中执行循环并将其保存在r中的表中,r,loops,for-loop,repeat,R,Loops,For Loop,Repeat,问题是:如果一个老师和他的35人的班级打赌,“有多少人有相同的生日?”。如果他输了,他付2美元,如果他赢了,他得到1美元。他下注1137次。所以,我做了一个循环来表示这个。现在,我想重复这个测试1000次,并将它保存在一个向量或表中,这样我就可以对它运行一个推断测试。如何重复循环 ```{r} exact=c(seq(1:365), seq(1:365), seq(1:365), seq(1:366)) bucket=numeric() smithbucks=0 for(i in

问题是:如果一个老师和他的35人的班级打赌,“有多少人有相同的生日?”。如果他输了,他付2美元,如果他赢了,他得到1美元。他下注1137次。所以,我做了一个循环来表示这个。现在,我想重复这个测试1000次,并将它保存在一个向量或表中,这样我就可以对它运行一个推断测试。如何重复循环

```{r}

exact=c(seq(1:365), seq(1:365), seq(1:365), seq(1:366))  
bucket=numeric()  
smithbucks=0  
for(i in 1:1137){  
  class=sample(exact, size = 35, replace = TRUE)  
hmmm=sum(duplicated(class))  
if (hmmm > 0) smithbucks = smithbucks +1  
else smithbucks = smithbucks -2}  

```

有很多方法可以做到这一点。一种简单的方法是将其放入sapply循环中:

results <- sapply(1:1000, function(i) {
    exact=c(seq(1:365), seq(1:365), seq(1:365), seq(1:366))  
    smithbucks=0  
    for(i in 1:1137){  
      class=sample(exact, size = 35, replace = TRUE)  
    hmmm=sum(duplicated(class))  
    if (hmmm > 0) smithbucks = smithbucks +1  
    else smithbucks = smithbucks -2}
    return(smithbucks)
})
结果0)史密斯巴克斯=史密斯巴克斯+1
else smithbucks=smithbucks-2}
退货(史密斯巴克)
})

我正试图通过1000次抽样来找出他的平均利润。你已经模拟了1137次下注,这不是给了你想要的平均利润吗?@sconfluentus我看所有的括号都在那里。类示例返回一个长度为35的向量,我不知道你为什么认为它返回一个整数。这并不是说你实际上需要一个循环:1000美元的示例可以取自
3*rbinom(10001137,0.8143832)-2
谢谢!这正是我所需要的。