Если я правильно понимаю, что вы хотите, вы просто хотите l oop по каждой комбинации Farm
и Drug
. Шаг 1 состоит в том, чтобы определить уровни каждого из этих факторов. Если вы прочитали свой CSV-файл без stringsAsFactors
, установленного на FALSE
, мы можем получить уровни с помощью функции levels
:
Farms = levels(dat$Farm)
Drugs = levels(dat$Drug)
Затем для l oop по каждому из них вы можете просто do:
set.seed(1234) ## Only put this inside your loop if you want to use the same
## sequence of random numbers for each model.
for(farm in Farms){
for(drug in Drugs){
dat1 <-subset(dat, Farm == farm & Drug == drug, select=1:9)
model <- fecr_stan(dat1$EPG1/50, dat1$EPG2/50,
rawCounts = TRUE, paired=FALSE,
indEfficacy=FALSE)
## Note you'll have to do something to save or store the model output here
}
}
Спасибо Джеймсу за ваши коды / комментарии, очень признателен. Первый; в моих кодах есть пара ошибок: egg.1$EPG1/50 and egg.1$EPG1/50
должно быть dat$EPG1/50 & dat$EPG1/50
. Я должен сказать, что я не очень хорош с петлями, на тот случай, если я задаю глупые вопросы здесь. Да, я хочу сравнить разницу между значениями $ EPG1 / 50 и dat $ EPG2 / 50 для каждого препарата в каждой ферме и сохранить результат в векторе. Когда вы говорите «Я * над каждым», что вы подразумеваете под этим? Вы предлагаете, чтобы я поставил model <- fecr_stan(dat$EPG1/50, dat$EPG2/50, rawCounts=TRUE, paired=FALSE, indEfficacy=FALSE)
, и это будет работать? Должен ли я поставить setseed(12345)
вне l oop? Я ценю ваши мысли! Я приложил образец своих данных в виде изображения, если вы хотите посмотреть. Я не знал, как мне вставить образец моих данных здесь.