[R] data manipulation

Sebastian Luque spluque at gmail.com
Thu Sep 8 19:12:48 CEST 2005


Marc Bernard <bernarduse1 at yahoo.fr> 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




More information about the R-help mailing list