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]]
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)) > datX1 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)) > tblrater.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.
I think this is what reshape is made for...
Frans
--------------------------------------
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(rater.id,observation,rating)
library(reshape)
dat2<-melt(dat, id.vars = c('rater.id','observation'))
cast(dat2,observation~rater.id)
observation 1 2 3
1 6 7 NA
2 4 NA 6
3 NA 2 4
2015-10-10 20:15 GMT+02:00 David L Carlson <dcarlson at tamu.edu>:
> 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.
> ______________________________________________
> 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.
>
[[alternative HTML version deleted]]