[R] How to selectively sum rows [Beginner question]
Aaron Siirila
siirilaa at EastWestCenter.org
Mon Oct 24 18:02:22 CEST 2011
Sorry, I attempted to paste the sample data but it must have been stripped
out when I posted. It is hopefully now listed below.
tapply looks useful. I will check it out further.
Here's the sample data:
> flights[1:10,]
PASSENGERS DISTANCE ORIGIN ORIGIN_CITY_NAME ORIGIN_WAC DEST
DEST_CITY_NAME DEST_WAC YEAR
1 17266 5995 LAX Los Angeles, CA 91 ICN Seoul,
South Korea 778 2010
2 16934 5995 LAX Los Angeles, CA 91 ICN Seoul,
South Korea 778 2010
3 15470 5995 LAX Los Angeles, CA 91 ICN Seoul,
South Korea 778 2010
4 13997 5995 ICN Seoul, South Korea 778 LAX Los
Angeles, CA 91 2010
5 13738 5995 LAX Los Angeles, CA 91 ICN Seoul,
South Korea 778 2010
6 13682 5995 LAX Los Angeles, CA 91 ICN Seoul,
South Korea 778 2010
7 13187 5995 ICN Seoul, South Korea 778 LAX Los
Angeles, CA 91 2010
8 13051 5995 LAX Los Angeles, CA 91 ICN Seoul,
South Korea 778 2010
9 12761 1940 SPN Saipan, TT 5 ICN Seoul,
South Korea 778 2010
10 12419 5995 ICN Seoul, South Korea 778 LAX Los
Angeles, CA 91 2010
Thanks,
Aaron
-----Original Message-----
From: jim holtman [mailto:jholtman at gmail.com]
Sent: Monday, October 24, 2011 11:58 AM
To: asindc
Cc: r-help at r-project.org
Subject: Re: [R] How to selectively sum rows [Beginner question]
It would be good to follow the posting guide and at least supply a
sample of the data.
Most likely 'tapply' is one way of doing it:
tapply(df$passenger, list(df$orig, df$dest), sum)
On Mon, Oct 24, 2011 at 11:27 AM, asindc <siirilaa at eastwestcenter.org>
wrote:
> Hi, I am new to R so I would appreciate any help. I have some data that
has
> passenger flight data between city pairs. The way I got the data, there
are
> multiple rows of data for each city pair; the number of passengers needs
to
> be summed to get a TOTAL annual passenger count for each city pair.
>
> So my question is: how do I create a new table (or data frame) that
> selectively sums
>
> My initial thought would be to iterate through each row with the following
> logic:
>
> 1. If the ORIGIN_WAC and DEST_WAC pair are not in the new table, then add
> them to the table
> 2. If the ORIGIN_WAC and DEST_WAC pair already exist, then sum the
> passengers (and do not add a new row)
>
> Is this logical? If so, I think I just need some help on syntax (or do I
use
> a script?). Thanks.
>
> The first few rows of data look like this:
>
>
>
> --
> View this message in context:
http://r.789695.n4.nabble.com/How-to-selectively-sum-rows-Beginner-question-
tp3933512p3933512.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>
--
Jim Holtman
Data Munger Guru
What is the problem that you are trying to solve?
More information about the R-help
mailing list