I seem to be running into the same problem reported in https://stat.ethz.ch/pipermail/r-help/2010-November/258265.html I cannot seem to transform a dataset from long to wide using reshape2. Clearly I am missing something very simple but a look at the manual and the reshape paper in JSS does not suggest anything. Any advice would be welcome ===========================load rehape2===================library(reshape2) ========================Working example==========================# Example from above URL dat <- read.table(textConnection('Subject Item Score "Subject 1" "Item 1" 1 "Subject 1" "Item 2" 0 "Subject 1" "Item 3" 1 "Subject 2" "Item 1" 1 "Subject 2" "Item 2" 1 "Subject 2" "Item 3" 0'), header=TRUE) closeAllConnections() acast(dat, Subject~Item) # Seems fine =====================My attemp==========================# set.seed(1) mydata <- data.frame( x=sample(LETTERS[23:26],100, replace=TRUE), y=rnorm(100, mean=2), id=sample(letters[1:4], 100, replace=TRUE)) acast(mydata , id ~ x) # not so fine ================================================================ produces this : Using id as value column: use value_var to override. Aggregation function missing: defaulting to length W X Y Z a 7 5 5 7 b 6 9 6 12 c 1 4 5 6 d 6 14 5 2 Why does reshape2 think it needs an aggregation function here> Thanks
Phil Spector
2011-Feb-26 19:24 UTC
[R] Transform a dataset from long to wide using reshape2
John - In the dat data frame, there is exactly one observation for each Subject/Item combination, so it's clear how to rearrange the values of Score. In the mydata data frame there are multiple values for most combinations of x and id, so reshape2 needs to aggregate y before it can rearrange the values. Hope this helps. - Phil Spector Statistical Computing Facility Department of Statistics UC Berkeley spector at stat.berkeley.edu On Sat, 26 Feb 2011, John Kane wrote:> I seem to be running into the same problem reported in > https://stat.ethz.ch/pipermail/r-help/2010-November/258265.html > > I cannot seem to transform a dataset from long to wide using reshape2. > Clearly I am missing something very simple but a look at the manual and the reshape paper in JSS does not suggest anything. > > Any advice would be welcome > ===========================load rehape2===================> library(reshape2) > ========================Working example==========================> # Example from above URL > dat <- read.table(textConnection('Subject Item Score > "Subject 1" "Item 1" 1 > "Subject 1" "Item 2" 0 > "Subject 1" "Item 3" 1 > "Subject 2" "Item 1" 1 > "Subject 2" "Item 2" 1 > "Subject 2" "Item 3" 0'), header=TRUE) > closeAllConnections() > > acast(dat, Subject~Item) > > # Seems fine > =====================My attemp==========================> # > set.seed(1) > mydata <- data.frame( x=sample(LETTERS[23:26],100, replace=TRUE), > y=rnorm(100, mean=2), id=sample(letters[1:4], 100, replace=TRUE)) > > acast(mydata , id ~ x) > # not so fine > ================================================================> produces this : > Using id as value column: use value_var to override. > Aggregation function missing: defaulting to length > W X Y Z > a 7 5 5 7 > b 6 9 6 12 > c 1 4 5 6 > d 6 14 5 2 > > Why does reshape2 think it needs an aggregation function here> > > Thanks > > ______________________________________________ > R-help at r-project.org mailing list > 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. >