按R中的因子添加列中的数据点

问题描述:

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://*.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Heroka

说这是你的数据:

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