HI, Modified version of my earlier solution: res1<-tapply(mydata$Mass,mydata$Sample,FUN=function(x) (x[3]-x[2])) res2<-data.frame(Sample=names(res1),Gain2_3=res1) merge(mydata,res2)
#Sample Time Mass Gain2_3 #1 1 1 3.0 0.3 #2 1 2 3.1 0.3 #3 1 3 3.4 0.3 #4 2 1 4.0 0.1 #5 2 2 4.3 0.1 #6 2 3 4.4 0.1 #7 3 1 3.0 0.3 #8 3 2 3.2 0.3 #9 3 3 3.5 0.3 A.K. ----- Original Message ----- From: Julie Lee-Yaw <jullee...@yahoo.ca> To: "r-help@r-project.org" <r-help@r-project.org> Cc: Sent: Monday, September 17, 2012 7:15 PM Subject: [R] help with calculation from dataframe with multiple entries per sample Hi I have a dataframe similar to: >Sample<-c(1,1,1,2,2,2,3,3,3) >Time<-c(1,2,3,1,2,3,1,2,3) >Mass<-c(3,3.1,3.4,4,4.3,4.4,3,3.2,3.5) >mydata<-as.data.frame(cbind(Sample,Time,Mass)) Sample Time Mass 1 1 1 3.0 2 1 2 3.1 3 1 3 3.4 4 2 1 4.0 5 2 2 4.3 6 2 3 4.4 7 3 1 3.0 8 3 2 3.2 9 3 3 3.5 where for each sample, I've measured mass at different points in time. I now want to calculate the difference between Mass at Time 2 and 3 for each unique Sample and store this as a new variable called "Gain2-3". So in my example three values of 0.3,0.1,0.3 would be calculated for my three unique samples and these values would be repeated in the table according to Sample. I am thus expecting: >mydata #after adding new variable Sample Time MassGain2-3 1 1 1 3.00.3 2 1 2 3.1 0.3 3 1 3 3.4 0.3 4 2 1 4.0 0.1 5 2 2 4.3 0.1 6 2 3 4.4 0.1 7 3 1 3.0 0.3 8 3 2 3.2 0.3 9 3 3 3.5 0.3 Does anyone have any suggestions as to how to do this? I've looked at the various apply functions but I can't seem to make anything work. I'm fairly new to R and would appreciate specific suggestions. Thanks! [[alternative HTML version deleted]] ______________________________________________ R-help@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. ______________________________________________ R-help@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.