[R] Row to Column help
Phil Spector
spector at stat.berkeley.edu
Sun Oct 4 21:03:22 CEST 2009
AC -
The easiest way I can think of is to create a time variable,
so reshape will know which observation to call 1, 2, or 3.
data$time = unlist(sapply(split(data,data$id),function(x)1:nrow(x)))
or
data$time = unlist(tapply(data$id,data$id,function(x)1:length(x))
Then
reshape(data,idvar=c('id','author'),timevar='time',direction='wide')
should give you what you want.
- Phil Spector
Statistical Computing Facility
Department of Statistics
UC Berkeley
spector at stat.berkeley.edu
On Sun, 4 Oct 2009, AC Del Re wrote:
> Dear R Community,
> I am attempting to transpose a dataset from rows to columns but am stuck. I
> have tried using reshape() with little luck, possibly due to the categorical
> nature of the data. For example:
>
> id<-c(1,2,2,3,3,3)
> author<-c("j","k","k","l","l","l")
> tmt<-c("cbt","act","dbt","act","act","cbt")
> alliance<-c("wai","other","calpas","wai","itas","other")
> data<-as.data.frame(cbind(id,author,tmt,alliance))
>
>> data
> id author tmt alliance
> 1 1 j cbt wai
> 2 2 k act other
> 3 2 k dbt calpas
> 4 3 l act wai
> 5 3 l act itas
> 6 3 l cbt other
>
> I would like the data to be in the following format:
>
> id author tmt.1 tmt.2 alliance.1 alliance.2 alliance.3
> 1 j cbt NA wai NA NA
> 2 k act dbt other calpas NA
> 3 l act act wai itas other
>
>
> I tried:
>
>> wide <- reshape(data, idvar=c("id","author"), direction="wide")
>
> Error in `[.data.frame`(data, , timevar) : undefined columns selected
>
> If I specify all columns, it gives the following format (which is not
> desired):
>
> wide <- reshape(data, idvar=c("id","author"),
> + direction="wide", *v.names="tmt", timevar="alliance"*)
>
>> wide
> id author tmt.wai tmt.other tmt.calpas tmt.itas
> 1 1 j cbt <NA> <NA> <NA>
> 2 2 k <NA> act dbt <NA>
> 4 3 l act cbt <NA> act
>
> Any help is much appreciated!
>
> AC
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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