Как создать распределение различий в R? - PullRequest
0 голосов
/ 23 апреля 2019

Я работаю над заданием для школы и застрял. Мне нужно создать функцию, которая создает рандомизированное распределение различий для двух обработок (1 и 2), которые пользователь вводит как вектор. Также необходимо найти значение p распределения, отсюда и критерий хи-квадрат.

Я написал код, который выглядит так, как будто все будет работать, ЗА ИСКЛЮЧЕНИЕМ Я не могу понять, как заставить simdiff повторяться несколько раз. Это кажется достаточно легким шагом, но я не могу понять это. Я пытался использовать «для (я в 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' должно быть числовым". Кажется, я все ближе, но он все еще не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...