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