[R] question: data.frame data conversion
Brijesh Gulati
brijgul at gmail.com
Sun Aug 4 21:34:12 CEST 2013
Hello Rui: Thanks for the solution. It does work to the specification. Just
one follow-up. I get an error if the number of repeating values are
different. For instance, in the following example, "c" is repeated only 2
times; whereas "a" and "b" three times. I am fine with the output shows NA
for the missing values. Any help would be greatly appreciated.
x = c("a","a", "a", "b","b","b", "c", "c")
y = c(1.0, 1.2, 1.1, 1.01, 1.03, 1.0, 2.0, 3.0)
z = as.data.frame(cbind(x,y))
x y
1 a 1
2 a 1.2
3 a 1.1
4 b 1.01
5 b 1.03
6 b 1
7 c 2
8 c 3
-----Original Message-----
From: Rui Barradas [mailto:ruipbarradas at sapo.pt]
Sent: Sunday, August 04, 2013 1:57 PM
To: Brijesh Gulati
Cc: r-help at r-project.org
Subject: Re: [R] question: data.frame data conversion
Hello,
First of all, do _not_ create a data frame with
as.data.frame(cbind(...))
Instead, use
z = data.frame(x, y)
As for your question, try the following.
library(reshape2)
fun <- function(z){
zs <- split(z, x)
n <- length(zs)
m <- nrow(zs[[1]])
zz <- cbind(id = rep(1:m, n), z)
dcast(zz, id ~ x)[-1]
}
fun(z)
Hope this helps,
Rui Barradas
Em 04-08-2013 13:49, Brijesh Gulati escreveu:
> Hello, I have a data.frame with repeating rows and corresponding
> value. For instance, "z" will be an example of that.
>
>
>
> x = c("a","a", "a", "b","b","b")
>
> y = c(1.0, 1.2, 1.1, 1.01, 1.03, 1.0)
>
> z = as.data.frame(cbind(x,y))
>
>
>
>> z
>
> x y
>
> 1 a 1
>
> 2 a 1.2
>
> 3 a 1.1
>
> 4 b 1.01
>
> 5 b 1.03
>
> 6 b 1
>
>
>
> So, you see that "a" and "b" are repeated 3 times and have three
> different value. I would like to convert this data into something like the
following.
>
>
>
> a b
> 1.0 1.01
> 1.2 1.03
> 1.1 1.00
>
>
>
> In the above, repeating rows (a,b) become columns and their values
> show up in their respective column.
>
> Finally, to clarify few things. The number of rows of each repeating
> item (a or b) would be the same and hence, the number of row expected
> in the output shall be the same.
>
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list