[R] apply function within different groups

arun smartpink111 at yahoo.com
Thu May 23 17:48:55 CEST 2013


Hi,

May be this helps:
dat1<- read.table(text="
group var1 var2 myvar
group1 1 a 100
group2 2 b 200
group2 34 c 300
group3 5 d 400
group3 6 e 500
group4 7 f 600
",sep="",header=TRUE,stringsAsFactors=FALSE)

library(plyr)
ddply(dat1,.(group),summarize, f_myvar=mifunc(myvar)) 
#   group f_myvar
#1 group1      NA
#2 group2     299
#3 group2     300
#4 group3     499
#5 group3     500
#6 group4      NA
A.K.



----- Original Message -----
From: Estefanía Gómez Galimberti <tefagg at yahoo.com>
To: r help help <r-help at r-project.org>
Cc: 
Sent: Thursday, May 23, 2013 11:30 AM
Subject: [R] apply function within different groups



Hi,

I have a very big data frame and I would like to apply a function to one of the columns within different groups  and obtain another dataframe
My data frame is like this:

group var1 var2 myvar 
group1 1 a 100 
group2 2 b 200 
group2 34 c 300 
group3 5 d 400 
group3 6 e 500 
group4 7 f 600 

and I woud like to apply this function to column myvar: 

mifunc = function(vec) {
vec=as.vector(vec)
for (i in 1:(length(vec)-1)){
vec[i]=vec[i+1]-1
}
return(vec)
}
by the groups in column group. I would like to obtain the same dataframe but with f(myvar) instead of myvar.

How can I do this?

Thanks, 
Estefania
    [[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