2015-07-21 24 views
-1

data.frame my_data由兩列(「PM2.5」&「年」)&大約6400000行組成。該data.frame對「PM2.5」的污染物水平的各種數據點1999年中,2002年,2005年2008 & 這就是我所做的data.drame:按R中的因子添加列中的數據點

{ 
my_data <- arrange(my_data,year) 

my_data$year <- as.factor(my_data$year) 
my_data$PM2.5 <- as.numeric(my_data$PM2.5) 
} 

我想根據不同年份找出所有PM2.5水平的總和(即PM2.5下所有數據點的總和)。我該怎麼做。

The image shows the first 20 rows of the data.frame. Since the column "years" is arranged, it is showing only 1999

+1

你有什麼試過的?一個可重複的例子會很好(沒有人想從圖像中輸入數據)http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Heroka

回答

2

說這是你的數據:

library(plyr) # <- don't forget to tell us what libraries you are using 

給我們一個簡單的樣本集

my_data <- data.frame(year=sample(c("1999","2002","2005","2008"), 10, replace=T), PM2.5 = rnorm(10,mean = 5)) 
my_data <- arrange(my_data,year) 

my_data$year <- as.factor(my_data$year) 
my_data$PM2.5 <- as.numeric(my_data$PM2.5) 

> my_data 
    year PM2.5 
1 1999 5.556852 
2 2002 5.508820 
3 2002 4.836500 
4 2002 3.766266 
5 2005 6.688936 
6 2005 5.025600 
7 2005 4.041670 
8 2005 4.614784 
9 2005 4.352046 
10 2008 6.378134 

一種方式做到這一點(出已經由簡單的谷歌搜索出很多,很多方面):

> with(my_data, (aggregate(PM2.5, by=list(year), FUN="sum"))) 
    Group.1   x 
1 1999 5.556852 
2 2002 14.111586 
3 2005 24.723037 
4 2008 6.378134