[R] Transform a dataset from long to wide using reshape2

Phil Spector spector at stat.berkeley.edu
Sat Feb 26 20:24:49 CET 2011


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.
>



More information about the R-help mailing list