我的R脚本中有一个数据框,如下所示:
> head(species.prop)
Source: local data frame [6 x 5]
year month area species catch.p
(dbl) (dbl) (chr) (chr) (dbl)
1 1998 4 VI hom 17.25
2 1998 5 VII pil 17.25
3 2000 4 VI hom 40.25
4 1998 4 IV hom 27.60
5 2000 1 VII pil 46.00
6 1998 4 VI pil 8.05
我想做的是改变数据框,以便它给出每年每个区域每年每个物种的catch.p总和。结果应该是一个类似上面的数据框,所有列标题都相同。
我试过聚合:
> aggregate(catch.p~area~species~month~year, species.prop,sum)
model.frame.default中的错误(公式= catch.p~area~种〜月〜: 对象不是矩阵
但无法弄清楚如何正确应用此功能
有谁知道怎么做?
万分感谢!!
答案 0 :(得分:1)
使用R。
中的dplyr软件包species.prop %>% group_by(species, area, month, year) %>% summarise(catch.p = sum(catch.p))
根据给出的数据,结果如下
来源:本地数据框[6 x 5] 群体:物种,面积,月份[?]
species area month year catch.p
(fctr) (fctr) (dbl) (dbl) (dbl)
1 hom IV 4 1998 27.60
2 hom VI 4 1998 17.50
3 hom VI 4 2000 40.25
4 pil VI 4 1998 8.05
5 pil VII 1 2000 46.00
6 pil VII 5 1998 17.50
但为了告诉你这是如何工作的,我改变了提交到Area = VII和month = 5的原始数据中的第6行,它看起来像
来源:本地数据框[5 x 5] 群体:物种,面积,月份[?]
species area month year catch.p
(fctr) (fctr) (dbl) (dbl) (dbl)
1 hom IV 4 1998 27.60
2 hom VI 4 1998 17.50
3 hom VI 4 2000 40.25
4 pil VII 1 2000 46.00
5 pil VII 5 1998 25.55