[R] Aggregation
arun
smartpink111 at yahoo.com
Wed Feb 19 03:01:06 CET 2014
Hi,
May be this helps:
DataA <- read.table(text="ID,Var1,Var2
1,A,100
1,B,50
2,A,200
2,B,100
2,B,50",sep=",",header=TRUE,stringsAsFactors=FALSE)
dcast(DataA,ID~Var1,value.var="Var2") ## I guess this is what you mentioned
#Aggregation function missing: defaulting to length
# ID A B
#1 1 1 1
#2 2 1 2
DataB <- ddply(DataA,.(ID,Var1),transform,Var1ID=paste0(ID,seq_along(Var1)))
dcast(DataB,ID+Var1ID~Var1,value.var="Var2")[,-2]
# ID A B
#1 1 100 50
#2 2 200 100
#3 2 NA 50
A.K.
On Tuesday, February 18, 2014 6:08 PM, farnoosh sheikhi <farnoosh_81 at yahoo.com> wrote:
For some reason, I get frequency not the values although I have var2 as numeric and no missing values.
Why is that?
Regards, Farnoosh Sheikhi
On Thursday, February 13, 2014 1:29 PM, arun <smartpink111 at yahoo.com> wrote:
Sorry, the library should be
library(reshape2)
On Thursday, February 13, 2014 4:27 PM, arun <smartpink111 at yahoo.com> wrote:
HI Farnoosh,
You can use ?dcast()
library(plyr)
dcast(DataA,ID~Var1,value.var="Var2")
# ID A B
#1 1 100 50
#2 2 200 100
A.K.
On Thursday, February 13, 2014 2:59 PM, farnoosh sheikhi <farnoosh_81 at yahoo.com> wrote:
Hi Arun,
I hope all is well. I need to aggregate a data like below:
DataA
ID Var1 Var2
1 A100
1B50
2 A200
2B100
The transformed data should
be like below:
ID AB
1100 50
2200100
Thanks a lot.
Regards, Farnoosh Sheikhi
More information about the R-help
mailing list