如何在R中创建差异分布?

时间:2019-04-23 19:11:04

标签: r function distribution

我正在为学校做作业,被卡住了。我需要创建一个函数,以创建用户输入为向量的两种治疗(1和2)的差异的随机分布。它还需要找到分布的p值,因此需要进行卡方检验。

我写了一段代码,看起来一切正常,但我无法弄清楚如何使simdiff重复多次。这似乎很简单,但我无法弄清楚。我尝试使用“ for(我在1:20000中)”,但我什至不知道这样做是什么,而且似乎在这里不起作用。

C <- function(dat, trt) {
  obsdiff <- mean(dat[trt == 2]) - mean(dat[trt == 1])
  trtsh <- sample(trt, size = length(trt))
  simdiff <- mean(dat[trtsh == 2]) - mean(dat[trtsh == 1])
  hist(simdiff)
  chisq.test(simdiff)}
}

dat<- c(1,4,2,5,2,4,8,6,9,7)
trt <- c(1,1,1,1,1,2,2,2,2,2)

除了我不知道如何多次重复simdiff之外,一切似乎都可以与我的代码一起使用。运行这样的代码时,我收到的错误是“ chisq.test(simdiff)中的错误:x的项必须是非负且有限的。”样本数据用于测试,该数据的p值应约为0.11。

我只是尝试将代码更改为

simdiff <- mean(dat[trtsh == 2]) - mean(dat[trtsh == 1])
  simdiff2 <- replicate(simdiff)
  hist(simdiff2)
  chisq.test(simdiff2)

但错误消息显示“ hist.default(simdiff2):'x'必须为数字”似乎越来越近了,但仍然无法正常工作

0 个答案:

没有答案