[R] Reformatting dataframe for use with icc()

David L Carlson dcarlson at tamu.edu
Sat Oct 10 20:15:04 CEST 2015


Don't post in html, the list scrambles your tables. Assuming your data looks like this

> rater.id <- c(1, 2, 1, 3, 2, 3)
> observation <- c(1, 1, 2, 2, 3, 3)
> rating <- c(6, 7, 4, 6, 2, 4)
> dat <- data.frame(rbind(rater.id, observation, rating))
> dat
            X1 X2 X3 X4 X5 X6
rater.id     1  2  1  3  2  3
observation  1  1  2  2  3  3
rating       6  7  4  6  2  4

We need to transpose the data and then use xtabs(). This will work as long as there is not more than one rating on an observation by the same rater:

> t(dat)
   rater.id observation rating
X1        1           1      6
X2        2           1      7
X3        1           2      4
X4        3           2      6
X5        2           3      2
X6        3           3      4

> tbl <- xtabs(rating~observation+rater.id, t(dat))
> tbl
           rater.id
observation 1 2 3
          1 6 7 0
          2 4 0 6
          3 0 2 4

If the 0's are a problem:

> tbl[tbl==0] <- NA
> print(tbl, na.print=NA)
           rater.id
observation    1    2    3
          1    6    7 <NA>
          2    4 <NA>    6
          3 <NA>    2    4


David L. Carlson
Department of Anthropology
Texas A&M University


-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Chad Danyluck
Sent: Friday, October 9, 2015 4:02 PM
To: r-help at r-project.org
Subject: [R] Reformatting dataframe for use with icc()

Hello,

I want to determine the inter-rater reliability of ratings made from a
random selection of observers and observations. I plan to use the irr
package to calculate the ICC, however, my dataframe is not organized in a
way that the icc() function can handle. The icc() function works with
dataframes in the following format:

                     rater1 rater2 rater3...
observation
1                           6       7      NA
2                           4    NA          6
3                         NA       2         4
...

My dataframe is organized in the following format:

rater.id               1  2  1  3  2  3 ...
observation       1  1  2  2  3  3 ...
rating                 6  7  4  6  2  4 ...

I would like to reformat my dataframe as it is organized in the first
example but I am not sure how to go about doing this. Any suggestions would
be appreciated.

Kind regards,

Chad

-- 
Chad M. Danyluck, MA
PhD Candidate, Psychology
University of Toronto



“There is nothing either good or bad but thinking makes it so.” - William
Shakespeare

	[[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


More information about the R-help mailing list