[R] how to subtotal by rows
arun
smartpink111 at yahoo.com
Sat Apr 20 00:25:44 CEST 2013
Hi Janesh,
There is a difference in output between these :
ddply(jd1,.(fid,year),colSums,na.rm=T) #especially the first two columns
# fid year rice wheat maize
#1 3 5985 5 3 2
#2 3 5988 4 2 6
#3 6 5985 3 8 4
#4 6 5988 7 6 7
ddply(jd1,.(fid,year),colwise(sum,na.rm=T))
# fid year rice wheat maize
#1 1 1995 5 3 2
#2 1 1996 4 2 6
#3 2 1995 3 8 4
#4 2 1996 7 6 7
aggregate(jd1[,3:5],by=list(jd1$year,jd1$fid),FUN=sum,na.rm=TRUE)
# Group.1 Group.2 rice wheat maize
#1 1995 1 5 3 2
#2 1996 1 4 2 6
#3 1995 2 3 8 4
#4 1996 2 7 6 7
A.K.
________________________________
From: Janesh Devkota <janesh.devkota at gmail.com>
To: shyam basnet <shyamabc2002 at yahoo.com>
Cc: "r-help at R-project.org" <r-help at r-project.org>
Sent: Friday, April 19, 2013 3:32 PM
Subject: Re: [R] how to subtotal by rows
You can also use this short command.
library(plyr)
ddply(jd1,.(fid,year),colSums,na.rm=T)
Janesh
On Fri, Apr 19, 2013 at 2:30 PM, Janesh Devkota <janesh.devkota at gmail.com>wrote:
> Hello Shyam,
>
> This is one way to do it
>
> jd1 <- read.table(text="
> fid year rice wheat maize
> 1 1995 5 NA NA
> 1 1995 NA 3 NA
> 1 1995 NA NA 2
> 1 1996 4 NA NA
> 1 1996 NA 2 NA
> 1 1996 NA NA 6
> 2 1995 3 NA NA
> 2 1995 NA 8 NA
> 2 1995 NA NA 4
> 2 1996 7 NA NA
> 2 1996 NA 6 NA
> 2 1996 NA NA 7
> ", sep="", header=T)
> jd1
>
> library(plyr)
>
> ddply(jd1,.(fid,year),summarise,
> rice=sum(rice,na.rm=T),wheat=sum(wheat,na.rm=T),maize=sum(maize,na.rm=T))
>
> Good luck
>
> Janesh
>
>
> On Fri, Apr 19, 2013 at 10:59 AM, shyam basnet <shyamabc2002 at yahoo.com>wrote:
>
>>
>>
>> Dear R-users,
>>
>> I have a dataset as like below, and I want to subtotal the values of
>> rice,wheat and maize by year for each fid.
>>
>> fid year rice wheat maize
>> ------------------------------------------------
>> 1 1995 5 NA NA
>> 1 1995 NA 3 NA
>> 1 1995 NA NA 2
>> 1 1996 4 NA NA
>> 1 1996 NA 2 NA
>> 1 1996 NA NA 6
>> 2 1995 3 NA NA
>> 2 1995 NA 8 NA
>> 2 1995 NA NA 4
>> 2 1996 7 NA NA
>> 2 1996 NA 6 NA
>> 2 1996 NA NA
>> 7-----------------------------------------------
>>
>> And, my output should look like below:
>>
>> fid year rice wheat maize
>> 1 1995 5 3 2
>> 1 1996 4 2 6
>>
>> 2 1995 3 8 4
>> 2 1996 7 6 7I am looking for some ideas or
>> r-codes on resolving my problem.
>> I appreciate your kind help,
>>
>>
>> Thanks a lot,
>>
>> Sincerely yours,
>> Shyam
>> Nepal
>> [[alternative HTML version deleted]]
>>
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> 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 at r-project.org mailing list
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