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

时间:2015-07-21 18:32:00

标签: r

data.frame my_data由两列组成(" PM2.5"&" years")&大约6400000行。 data.frame有各种污染物水平的数据点,即PM2.5" 1999年,2002年,2005年和2008年。  这就是我对data.drame所做的:

{ 
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 个答案:

答案 0 :(得分: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