[R] Data transformation
jim holtman
jholtman at gmail.com
Wed Nov 11 01:24:04 CET 2009
Is this what you want:
> x <- read.table(textConnection("id code1 code2 p
+ 1 4 8 0.1
+ 1 5 7 0.9
+ 2 1 8 0.4
+ 2 6 2 0.2
+ 2 4 3 0.6
+ 3 5 6 0.7
+ 3 7 5 0.9"), header=TRUE)
> closeAllConnections()
> # create object like output from 'melt'
> x.m <- data.frame(id=c(x$id, x$id), var=c(x$code1, x$code2),
+ variable=rep('p', 2*nrow(x)), value=c(x$p, x$p))
> require(reshape) # use the reshape package
> cast(x.m, id ~ var, mean)
id 1 2 3 4 5 6 7 8
1 1 NaN NaN NaN 0.1 0.9 NaN 0.9 0.1
2 2 0.4 0.2 0.6 0.6 NaN 0.2 NaN 0.4
3 3 NaN NaN NaN NaN 0.8 0.7 0.9 NaN
>
On Tue, Nov 10, 2009 at 4:30 PM, legen <legendy at gmail.com> wrote:
>
> Dear all,
>
> I have a dataset as below:
>
> id code1 code2 p
> 1 4 8 0.1
> 1 5 7 0.9
> 2 1 8 0.4
> 2 6 2 0.2
> 2 4 3 0.6
> 3 5 6 0.7
> 3 7 5 0.9
>
> I just want to rewrite it as this (vertical to horizontal):
>
> id var1 var2 var3 var4 var5 var6 var7 var8
> 1 0 0 0 0.1 0.9 0 0.9 0.1
> 2 0.4 0.2 0.6 0.6 0 0.2 0 0.4
> 3 0 0 0 0 0.8 0.7 0.9 0
>
> For the third subject, there are two values being equal to 5 in code1 and
> code2, but different values in p: 0.7 and 0.9, so I assigned their average
> 0.8 in var5.
>
> Does anybody can help me to handle this? Many thanks for your consideration
> and time.
>
> Legen
>
> --
> View this message in context: http://old.nabble.com/Data-transformation-tp26291568p26291568.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>
--
Jim Holtman
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
More information about the R-help
mailing list