Я делаю PRC, используя веганский пакет, но сталкиваюсь с проблемами, когда пытаюсь выполнить Anova по результатам. Я получаю следующее сообщение об ошибке:
Error in doShuffleSet(spln[[i]], nset = nset, control) :
number of items to replace is not a multiple of replacement length
Проблема возникает в функции shuffleSet пакета перестановки. Я создал воспроизводимый пример ниже. Странно то, что shuffle-функция не вызывает проблем, а shuffleSet-функция вызывает.
В моем эксперименте было проведено 3 обработки 4 животным. Животные получали лечение в разной последовательности. Ежедневно отбирали по 5 проб с течением времени.
Я хотел бы переставить свои наблюдения внутри животных, а не между ними. Поэтому я использую AnimalID как блок.
Я хотел бы переставить дни (в моих реальных экспериментах животные получали одно и то же лечение несколько раз), но сохранить измерения в течение дня без изменений. Поэтому я решил свободно переставлять дни и не иметь никаких перестановок внутри дней.
require(permute)
TreatmentLevels=3
Animals=4
TimeSteps=5
AnimalID=rep(letters[1:Animals],each=TreatmentLevels*TimeSteps)
Time=rep(1:TimeSteps,Animals=TreatmentLevels)
#treatments were given in different order per animal.
Day=rep(c(1,2,3,2,3,1,3,2,1,2,3,1),each=TimeSteps)
Treatment=rep(rep(LETTERS[1:TreatmentLevels],each=TimeSteps),Animals)
dataset=as.data.frame(cbind(AnimalID,Treatment,Day,Time))
ctrl=how(blocks = dataset$AnimalID,plots = Plots(strata=dataset$Day,type = "free"),
within=Within(type="none"), nperm = 999)
#this works
shuffle(60,control=ctrl)
#this giveas an error
shuffleSet(60,nset=1,control=ctrl)
shuffleSet(60,nset=10,control=ctrl)
Проблема похоже в блоке. Потому что это работает
dataset$AnimalDay=factor(paste0(dataset$AnimalID,dataset$Day))
ctrl=how(plots = Plots(strata=dataset$AnimalDay,type = "free"),
within=Within(type="none"), nperm = 999)
#this works
shuffle(60,control=ctrl)
shuffleSet(60,nset=1,control=ctrl)
shuffleSet(60,nset=10,control=ctrl)