[R] Calculating difference between values in data frame based on separate column
Sarah Goslee
sarah.goslee at gmail.com
Sat Oct 22 00:44:04 CEST 2011
Hi,
It shouldn't be so complicated. What about simply:
> td
vial measure value
2 1 A 12
1 1 B 26
4 2 A 30
3 2 B 45
6 3 A 27
5 3 B 32
8 4 A 6
7 4 B 34
> td <- td[order(td$vial, td$measure),] # make sure the samples are in order
> # how to get the differences
> td[td$measure == "B", "value"] - td[td$measure == "A", "value"]
[1] 14 15 5 28
>
> td.diff <- data.frame(vial = td[td$measure == "A", "vial"], diff = td[td$measure == "B", "value"] - td[td$measure == "A", "value"])
> td.diff
vial diff
1 1 14
2 2 15
3 3 5
4 4 28
>
Sarah
On Fri, Oct 21, 2011 at 6:31 PM, Nathan Miller <natemiller77 at gmail.com> wrote:
> Hi all,
>
> Say I have a data frame something like the one below with different sample
> vials, measured before(B) and after(A) some process, with a value recorded
> at each measurement point
>
> vial measure value
> 1 B 26
> 1 A 12
> 2 B 45
> 2 A 30
> 3 B 32
> 3 A 27
> 4 B 34
> 4 A 6
>
> Is there an easy means by which I can subtract the after (A) measurements
> from the before (B) measurement for each vial in this data frame so I am
> left with a data frame that contains the vial number and difference between
> A and B? I've played around with writing a function and applying it with
> ddply, but haven't stumbled on a technique that works, though I feel there
> should be something simple means of doing this that I'm just not seeing.
>
> Thanks for you help,
> Nate
>
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-help
mailing list