[R] reshape a dataset

Jim Lemon jim at bitwrit.com.au
Fri Aug 15 11:19:11 CEST 2014


On Thu, 14 Aug 2014 06:08:51 PM Sohail Khan wrote:
> Hi
> I have data set as follows:
>   A 92315  A 35018  A 56710  B 52700  B 92315  B 15135  C 35018  C 
52700
> I would like to transform this data set into:
>   ID 92315 35018 56710 52700 15135  A 1 1 1 0 0  B 1 0 0 1 1  C 0 1 0 
1 0
> I looked into reshape package to no avail.
> I would appreciate any suggestions.
> 
> -Sohail
> 
Hi Sohail,
You are doing a bit more than reshaping. This may get you there:

skdat<-read.table(text="A 92315
A 35018
A 56710
B 52700
B 92315
B 15135
C 35018
C 52700",stringsAsFactors=FALSE)
names(skdat)<-c("lettertag","ID")
ID<-unique(skdat$ID)
lettertags<-unique(skdat$lettertag)
newskdat<-list(ID)
for(i in 1:length(lettertags))
 newskdat[[i+1]]<-
  as.numeric(ID %in% skdat$ID[skdat$lettertag==lettertags[i]])
names(newskdat)<-c("ID",lettertags)

I'm assuming that you don't really want your answer as a single string.

Jim



More information about the R-help mailing list