Skip to content
Back to formatted view

Raw Message

Message-ID: <4EA7DAD0.6070904@uni-bremen.de>
Date: 2011-10-26T10:02:56Z
From: Patrick Hausmann
Subject: Calculate the difference using ave

Dear R users,

It may be very simple but it is being difficult for me.
I'd like to calculate the difference in percent between to measures.
My data looks like this:

set.seed(123)
df1 <- data.frame(measure = rep(c("A1", "A2", "A3"), each=3),
                   water = sample(c(100:200), 9),
		  tide  = sample(c(-10:+10), 9))
df1

# What I want to calculate is:
# tide_[A2] / water_[A1],
# tide_[A3] / water_[A2]

# This 'works' for the example, but I am
# looking for a more general solution.

df1$tide_diff <- ave(df1$tide, FUN=function(L) L /
                      c(NA, NA, NA, df1$water)) * 100
df1

Thanks for any help!
Patrick