HI, You could try: dat1<-read.table(text=" X Z x1 102 x2 102 x2 102 x2 77 x3 23 ",sep="",header=T,stringsAsFactors=F) res1<-tapply(dat1[,1],list(dat1[,1],dat1[,2]),length) res1[apply(res1,2,function(x) is.na(x))]<-0 colnames(res1)<-paste("Z.",colnames(res1),sep="") res1 # Z.23 Z.77 Z.102 #x1 0 0 1 #x2 0 1 2 #x3 1 0 0
#or library(reshape2) res2<- dcast(dat1,X~Z,length,value.var="Z") colnames(res2)<-paste("Z.",colnames(res2),sep="") ----- Original Message ----- From: farnoosh sheikhi <farnoosh...@yahoo.com> To: "r-help@R-project.org" <r-help@r-project.org> Cc: Sent: Monday, January 28, 2013 6:48 PM Subject: [R] Pivot Hi, I have a data set as follow: X Z x1 102 x2 102 x2 102 x2 77 x3 23 I need to pivot this data as follows and assign the values based on frequency of column Z: X Z.102 Z.77 Z.23 x1 1 0 0 x2 21 0 x3 00 1 Thanks. Best,Farnoosh Sheikhi [[alternative HTML version deleted]] ______________________________________________ R-help@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. ______________________________________________ R-help@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.