Julie -
Since the apply functions operate on one row at a time, they
can't do what you want. I think the easiest way to solve your
problem is to reshape the data set, and merge it back with the
original:
dd = data.frame(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))
rdd = reshape(dd,timevar='Time',idvar='Sample',direction='wide')
rdd$"Gain2-3" = rdd$Mass.3 - rdd$Mass.2
merge(dd,subset(rdd,select=c('Sample',"Gain2-3")))
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
You may want to avoid using special characters like dashes in variable
names.
Hope this helps.
- Phil Spector
Statistical Computing Facility
Department of Statistics
UC Berkeley
spec...@stat.berkeley.edu
On Mon, 17 Sep 2012, Julie Lee-Yaw wrote:
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.