使用FOR循环查找变量之和?
我有一个数据框架,其中包含我从国家排放清单网站获得的6个变量的6497651个观测值,它包含以下变量:使用FOR循环查找变量之和?,r,loops,dataframe,R,Loops,Dataframe,我有一个数据框架,其中包含我从国家排放清单网站获得的6个变量的6497651个观测值,它包含以下变量: fips SCC Pollutant Emissions type year 09001 10100401 PM25 15.14 POINT 1999 09001 10100402 PM25 234.75 POINT 1999 其中,fips为县代码,SCC为源字符串名称,
fips SCC Pollutant Emissions type year
09001 10100401 PM25 15.14 POINT 1999
09001 10100402 PM25 234.75 POINT 1999
其中,fips
为县代码,SCC
为源字符串名称,污染物
为污染物类型(本例中为PM2.5排放量),排放量
表示污染物排放量,单位为吨,类型
为污染物排放源类型(道路、非道路、点等)和年份
记录了1999年至2008年的年份
基本上,我必须绘制一个简单的线条图,以展示每年排放水平的变化。现在,仅1999年就有上千次观测,;2008年之前的其他年份也是如此。这个问题一点也不难,因为我可以很容易地用记录的所有排放量的总和为每年形成一个新的数据框架,然后将所有这些子集数据框架进行行绑定。但更有效、更整洁的方法可能是使用FOR循环,我可以根据每年计算“排放量”下所有值的总和,并将所有信息存储到新的数据框中,但我仍无法确定从何开始。如何输入将根据每年计算值总和的确切语法?我应该有这样一个数据框:
Year Emissions
其中,
排放量
记录了该特定年份所有排放量的总和。数据。表
包可能是处理此类问题最有效的包。计算每年排放总量的语法如下(假设您的数据存储在dt
):
一个
dplyr/ggplot
选项。我们按“年”分组,使用summary
获得“排放量”的summary
和ggplot
绘图
library(dplyr)
library(ggplot2)
df1 %>%
group_by(year) %>%
summarise(Emissions=sum(Emissions)) %>%
ggplot(., aes(x=year, y=Emissions))+
geom_line()
也可以直接在ggplot
ggplot(df1, aes(x=year, y=Emissions)) +
stat_summary(fun.y='sum', geom='line')
别绕圈子,绕圈子。看见例如:
ddply(data,.(Year),function(x){em_sum可能with(mydata,tapply(Emissions,Year,sum))
。最好在预期结果中添加一些实际样本数据。根据@PierreI的要求添加的详细信息建议使用setDT()
而不是数据。table()
它从data.frame返回data.table而不进行深度复制。它已经存在很长时间了。
ggplot(df1, aes(x=year, y=Emissions)) +
stat_summary(fun.y='sum', geom='line')