# [R] how to subtotal by rows

shyam basnet shyamabc2002 at yahoo.com
Sat Apr 20 18:20:17 CEST 2013

```Dear All,

Thanks for helping me to redress the problem.

Cheers,

Shyam Basnet
Nepal

----- Original Message -----
> From: arun <smartpink111 at yahoo.com>
> To: Janesh Devkota <janesh.devkota at gmail.com>
> Cc: R help <r-help at r-project.org>; shyam basnet <shyamabc2002 at yahoo.com>
> Sent: Saturday, April 20, 2013 12:52 AM
> Subject: Re: [R] how to subtotal by rows
>
> HI,
>
> If you wanted to use colSums, may be this works:
>
> ddply(jd1,.(fid,year),function(x) colSums(x[,-c(1,2)],na.rm=TRUE))
> #  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
> A.K.
>
>
>
> ----- Original Message -----
> From: arun <smartpink111 at yahoo.com>
> To: Janesh Devkota <janesh.devkota at gmail.com>
> Cc: R help <r-help at r-project.org>; shyam basnet
> Sent: Friday, April 19, 2013 6:25 PM
> Subject: Re: [R] how to subtotal by rows
>
>
> 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
>>
>>  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
>>  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
>>>  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