[R] difference
P Tennant
philipt900 at iinet.net.au
Fri Oct 28 11:08:50 CEST 2016
Hi,
You could use an anonymous function to operate on each `year-block' of
your dataset, then assign the result as a new column:
d <- data.frame(year=c(rep(2001, 3), rep(2002, 3)),
num=c(25,75,150,30,85,95))
d$diff <- unlist(by(d$num, d$year, function(x) x - x[1]))
d
year num diff
1 2001 25 0
2 2001 75 50
3 2001 150 125
4 2002 30 0
5 2002 85 55
6 2002 95 65
Philip
On 28/10/2016 3:20 PM, Ashta wrote:
> Hi all,
>
> I want to calculate the difference between successive row values to
> the first row value within year.
> How do I get that?
>
> Here is the sample of data
> Year Num
> 2001 25
> 2001 75
> 2001 150
> 2002 30
> 2002 85
> 2002 95
>
> Desired output
> Year Num diff
> 2001 25 0
> 2001 75 50
> 2001 150 125
> 2002 30 0
> 2002 85 55
> 2002 95 65
>
> Thank you.
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
More information about the R-help
mailing list