Haven't seen a solution using ave... d$diff <- ave( d$num, d$year, FUN = function( v ) { v - v[ 1 ] } ) -- Sent from my phone. Please excuse my brevity.
On October 28, 2016 12:46:15 PM CDT, William Dunlap via R-help <r-help@r-project.org> wrote: >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 <sewa...@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@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]] > >______________________________________________ >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.