[R] difference
William Dunlap
wdunlap at tibco.com
Fri Oct 28 19:46:15 CEST 2016
You could use match() to find, for each row, the index of the first
row with the give row's year:
> d <- data.frame(year=c(rep(2001, 3), rep(2002, 3)),
num=c(25,75,150,30,85,95))
> indexOfFirstOfYear <- with(d, match(year, year))
> indexOfFirstOfYear
[1] 1 1 1 4 4 4
> d$diff <- d$num - d$num[indexOfFirstOfYear]
> 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
Bill Dunlap
TIBCO Software
wdunlap tibco.com
On Thu, Oct 27, 2016 at 9:20 PM, Ashta <sewashm at gmail.com> 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.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list