I am sure all this work but If you want exaclty the output to be the way you mentioned do this
temp<-read.table("yourfile", as.is=T, header=T) temp1<-temp[, 1:3] temp2<-temp[, c(1,2,4)] colnames(temp1)[3]<-"X" colnames(temp2)[3]<-"X" temp3<-merge(temp1, temp2, all=T) temp3$type<-toupper(substr(temp3$X, 1,2)) after which you can generate factors and such.. note the as.is=T in read.table keeps the variables X1, X2, as characters. This is done for substr... P.S. I am sure you can use reshape instead of the second to the fifth commands above ?reshape Jean On Thu, 8 Sep 2005, Sebastian Luque wrote: > Marc Bernard <[EMAIL PROTECTED]> wrote: > > Dear All, > > > I would be grateful if you can help me. My problem is the following: > > I have a data set like: > > > ID time X1 X2 > > 1 1 x111 x211 > > 1 2 x112 x212 > > 2 1 x121 x221 > > 2 2 x122 x222 > > 2 3 x123 x223 > > > where X1 and X2 are 2 covariates and "time" is the time of observation and > > ID > > indicates the cluster. > > > I want to merge the above data by creating a new variable "X" and "type" as > > follows: > > > ID time X type > > 1 1 x111 X1 > > 1 2 x112 X1 > > 1 1 x211 X2 > > 1 2 x212 X2 > > 2 1 x121 X1 > > 2 2 x122 X1 > > 2 3 x123 X1 > > 2 1 x221 X2 > > 2 2 x222 X2 > > 2 3 x223 X2 > > > > Where "type" is a factor variable indicating if the observation is related > > to > > X1 or X2... > > > Say your original data is in dataframe df, then this might do what you > want: > > R> newdf <- rbind(df[, 1:3], df[, c(1, 2, 4)]) > R> names(newdf)[3] <- "X" > R> newdf$type <- substr(c(df[[3]], df[[4]]), 1, 2) > > Cheers, > > -- > Sebastian P. Luque > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html