2013-03-19 2 views
1

У меня есть дата-рамка, в которой я хочу вычислить соглашение interrater (Fleiss Kappa) для нескольких коэффициентов на нескольких уровнях моего фактора, "form. " Когда я запускаю мой код, я получаю следующее сообщение об ошибке:R Ошибка: индекс за пределами с помощью() вложен в kappam.fleiss()

**Error in factor(ratings[i, ], levels = lev) : subscript out of bounds** 

Вот пример того, что он выглядит следующим образом:

form <- c("B01","B01","B01","B02","B02","B02","B03","B03","B03") 
word<-c("arch","avenue","concrete","devotion","equations","moth","piling","relate","cover") 
B01200<-c(1,2,3,NA,NA,NA,NA,NA,NA) 
B01209<-c(3,2,1,NA,NA,NA,NA,NA,NA) 
B01214<-c(1,3,2,NA,NA,NA,NA,NA,NA) 
B01228<-c(NA,NA,NA,NA,NA,NA, 2,2,1) 
B<-c(NA,NA,NA,NA,NA,NA ,1,2,3) 
B01242<-c(NA,NA,NA,NA,NA,NA, 3,3,1) 
B02215<-c(NA,NA,NA ,2,1,1,NA,NA,NA) 
B02217<-c(NA,NA,NA,2,1,1,NA,NA,NA) 
B02222<-c(NA,NA,NA, 3,1,3,NA,NA,NA) 
x <- data.frame(form,word,B01200,B01209,B01214,B01228,B,B01242,B02215,B02217,B02222) 
x$form <-factor(x$form) 
by(x,x[,"form"], function(x) kappam.fleiss(x[,-c(1:2)], detail=TRUE)) 

Когда я смотрю на основную структуру, используя ул (х), я не могу посмотрите, что проблема с моей переменной «form».

Вот что он показывает:

'data.frame': 9 obs. of 11 variables: 
    $ form : Factor w/ 3 levels "B01","B02","B03": 1 1 1 2 2 2 3 3 3 
    $ word : Factor w/ 9 levels "architects","avenue",..: 1 2 3 5 6 7 8 9 4 
    $ B01200: num 1 2 3 NA NA NA NA NA NA 
    $ B01209: num 3 2 1 NA NA NA NA NA NA 
    $ B01214: num 1 3 2 NA NA NA NA NA NA 
    $ B01228: num NA NA NA NA NA NA 2 2 1 
    $ B: num NA NA NA NA NA NA 1 2 3 
    $ B01242: num NA NA NA NA NA NA 3 3 1 
    $ B02215: num NA NA NA 2 1 1 NA NA NA 
    $ B02217: num NA NA NA 2 1 1 NA NA NA 
    $ B02222: num NA NA NA 3 1 3 NA NA NA 

Что я делаю неправильно?

Спасибо!

ответ

1

«Пропущенные данные опущены в порядке списка» в пределах irr package, также функцией kappam.fleiss(), чтобы правильно вычислить значения каппа. Это означает в основном, что по крайней мере одно из ваших случаев должно оцениваться всеми читателями для выполнения функции без ошибок (т. Е. Нет NA). В ваших данных ни одна из строк не подходит для этого (т. Е. Каждый случай имеет по крайней мере один NA).

Для того, чтобы понять на примере:

  • работ: kappam.fleiss(data.frame(c(1,3,4), c(1,3,3)))
  • все еще работает: kappam.fleiss(data.frame(c(1,3,4), c(1,3,NA)))
  • все еще работает (но только дает вам NaN): kappam.fleiss(data.frame(c(1,NA,4), c(1,3,NA)))
  • выдает ошибку (например, в вашем случае):

В зависимости от того, что вы хотите сделать, вы можете реструктурировать свои данные или разделить их и протестировать подмножества отдельно?

Смежные вопросы