r - 如何通过重复模拟得到不同的结果?
问题描述
我试图测试从 64 个对象中随机选择的 24 个样本的标准误差,但是当我尝试运行 10 次时,它给出了 10 个相同的答案。用重复来测试它的正确方法是什么?这是我的代码和结果。
po=c(900,822,781,805,670,1238,573,634,578,487,442,451,459,464,400,366,364,317,328,302,288,291,253,291,308,272,284,255,270,214,195,260,209,183,163,253,232,260,201,147,292,164,143,169,139,170,150,143,113,115,123,154,140,119,130,127,100,107,114,111,163,116,122,134)
se_1 = sd(sample(po[1:64],24,replace = FALSE)) * sqrt(1/24)
rep(se_1, times=10)
#[1] 44.69907 44.69907 44.69907 44.69907 44.69907 44.69907 44.69907 44.69907
#[9] 44.69907 44.69907
解决方案
做se_1
一个函数
se_1 <- function() sd(sample(po[1:64],24,replace = FALSE)) * sqrt(1/24)
那么你可以这样
replicate(se_1(), times=10)
或者你可以做
replicate(sd(sample(po[1:64],24,replace = FALSE)) * sqrt(1/24), times=10)
replicate()
接受一个您想要重复调用的表达式,而rep()
只是重复一个现有值(或多个值)一定次数。它不计算“新”值。
推荐阅读
- devise - 使用用户控制器中的当前记录设计超级操作,以在 Ruby on Rails 中发送邮件
- excel - 将所选项目从列表框中传输到工作簿中的下一个可用单元格
- ios - 如何传输坐标以长按显示图像视图
- node.js - ERR_SSL_PROTOCOL_ERROR 仅适用于某些用户(nodejs,express)
- python - 如何将视频从树莓派直播到来自不同网络的远程设备?
- r - Ggplot2:unique() 不能与 dplyr 管道一起正常工作
- php - 调用未定义的方法 Illuminate\Database\Query\Builder::with()
- linux - 为什么命令行 rm 不接受带有空格的目录的引号?
- vue.js - Webpack 构建错误:无法解析 PrimeVue UI 组件中的子组件
- kubernetes - 我们可以在使用 kubeadm 工具创建的集群中使用 Amazon-vpc-cni-k8s 网络插件吗?