[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