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@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.
______________________________________________
R-help@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.