r - R中样本函数中的多个变量
问题描述
我正在尝试使用示例函数来产生数字“3”的次数,如果我“掷骰子”N 次就会出现。例如,如果我想要 N 次后数字 3 的频率。但我试图在 N 次之后执行此操作,N +10,N+20 直到 N+200。换句话说,数字 3 在 10、20、30、40 ... 210 之后出现的频率。但不是每次都复制代码并更改 N 的值,有没有更有效的方法来做到这一点?所以这是代码:
N=10
e1= sample(1:6,N,rep=T)
e11=(e1==3)
sum_e11=sum(e11)
relative_freq= sum_e11/N
relative_freq
解决方案
这是一个涵盖这两个选项的解决方案。为您最初发布的单个示例方法设置iterations = 1
。迭代次数越多,频率在数学上就越准确。该sapply
函数将在从 10 到 200 的序列中的每个值处运行该函数,乘以 10。
relative_freq <- function(target,N,iterations=10000){
result <- logical(iterations)
for(i in 1:iterations){
samp <- sample(1:6,N,replace=TRUE)
result[i] <- sum(samp==target)
}
mean(result)
}
relative_freq(3,10)
relative_freq(3,20,1)
sapply(seq(10,200,by=10),function(n){relative_freq(3,n)})
推荐阅读
- php - 如果生成了新的 JWT,如何使 JWT 过期
- python - 如何从python字典中的键中删除一个值,其中值存储在列表中
- c# - 如何获取从数据库返回的准确日期格式查询
- python - 如何总结列表中的值?
- javascript - 使用给定 ID 的对象过滤嵌套数组
- java - java中treeset/CopyOnWriteArrayList的默认大小?
- reactjs - 是否可以防止 react-modal 在关闭时卸载?
- excel - VBA Internet Explorer 脚本仅在 50% 的时间内有效
- angular - Angular2使一个字段可以从模板访问但对其他人不公开
- ssms - SSMS 表格模型:通过一个 xmla 脚本创建多个分区