Привет, я пытаюсь получить ICC для значения, зависящего от набора уровней факторов. Например:
usr1<-data.frame(a1=1:5,a2=11:15,a3=21:25,bin=factor(c("a","b","a","a","b")))
usr2<-data.frame(a1=2:6,a2=12:16,a3=32:36)
Я хотел бы ICC a1, a2 и a3, где бункер - это a и b. Перед обработкой фактора я использовал mapply
mapply(function(x,y){z<-data.frame(x,y);icc(z,model="t",type="a")},usr1[,-4],usr2)
Я не могу понять, как обернуть это, чтобы сделать это для каждого уровня фактора.
mapply(function(x,y){z<-data.frame(x,y);icc(z,model="t",type="a")},usr1[c(1,3,4),-4],usr2[c(1,3,4),])
должен дать вам правильный ответ для уровня «а» и
mapply(function(x,y){z<-data.frame(x,y);icc(z,model="t",type="a")},usr1[c(2,5),-4],usr2[c(2,5),])
должен дать вам правильный ответ для уровня "b".
Это очень упрощенная версия моей задачи, где мне нужно рассчитать более 200 ICC для 20 уровней. Я не знаю заранее, какие строки имеют какие факторы, за исключением того факта, что они у меня есть в data.frame.
Спасибо.
ИЗМЕНИТЬ
Ожидаемый результат будет таким....
usr1$bin:a a1 a2 a3 subjects 3 3 3 raters 2 2 2 model "twoway" "twoway" "twoway" type "agreement" "agreement" "agreement" unit "single" "single" "single" icc.name "ICC(A,1)" "ICC(A,1)" "ICC(A,1)" value 0.8235294 0.8235294 0.03713528 r0 0 0 0 Fvalue -5.2542e+15 -5.2542e+15 1.094625e+14 df1 2 2 2 df2 1 1 1 p.value 1 1 6.758531e-08 conf.level 0.95 0.95 0.95 lbound 0.005803109 0.005803109 4.823719e-05 ubound 0.9944658 0.9944658 0.5976005 ------------------------------------------------------ usr1$bin:b a1 a2 a3 subjects 2 2 2 raters 2 2 2 model "twoway" "twoway" "twoway" type "agreement" "agreement" "agreement" unit "single" "single" "single" icc.name "ICC(A,1)" "ICC(A,1)" "ICC(A,1)" value 0.9 0.9 0.06923077 r0 0 0 0 Fvalue Inf Inf Inf df1 1 1 1 df2 1 1 1 p.value 0 0 0 conf.level 0.95 0.95 0.95 lbound 0.01370303 0.01370303 0.0001148084 ubound 0.9998285 0.9998285 0.9796676