[R] difference
Ashta
sewashm at gmail.com
Sat Oct 29 04:28:44 CEST 2016
Hi all thank you very much for your help. Worked very well for that
data set. I just found out that one of the data sets have another
level and do the same thing, I want to calculate the difference
between successive row values (num) to the first row value within
city and year.
city, year, num
1, 2001, 25
1, 2001, 75
1, 2001, 150
1, 2002, 35
1, 2002, 65
1, 2002, 120
2, 2001, 25
2, 2001, 95
2, 2001, 150
2, 2002, 35
2, 2002, 110
2, 2002, 120
The result will be
city,year,num,Diff
1, 2001, 25, 0
1, 2001, 75, 50
1, 2001, 150, 125
1, 2002, 35, 0
1, 2002, 65, 30
1, 2002, 120, 85
2, 2001, 25, 0
2, 2001, 95, 70
2, 2001, 150, 125
2, 2002, 35, 0
2, 2002, 110, 75
2, 2002, 120, 85
Thank you again
On Fri, Oct 28, 2016 at 4:08 AM, P Tennant <philipt900 at iinet.net.au> wrote:
> 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