R-无法按日期聚合数据
我正在尝试使用R-无法按日期聚合数据,r,plyr,R,Plyr,我正在尝试使用ddply()聚合一个表。 我的桌子看起来像这样: Year Month Count 2000 Jan 1 2000 Jan 2 2001 Feb 2 2001 Feb 1 我想根据年份和月份来计算总数。所以我会有2000年1月3日和2001年2月3日。 我的代码是 ddply(df,???,sum(Count)) 我不知道如何添加多个变量。我们按变量“年”、“月”分组,并从plyr中获取指定摘要的计数的总和
ddply()
聚合一个表。
我的桌子看起来像这样:
Year Month Count
2000 Jan 1
2000 Jan 2
2001 Feb 2
2001 Feb 1
我想根据年份和月份来计算总数。所以我会有2000年1月3日和2001年2月3日。
我的代码是
ddply(df,???,sum(Count))
我不知道如何添加多个变量。我们按变量“年”、“月”分组,并从
plyr
中获取指定摘要的计数的总和
使用plyr
library(plyr)
ddply(df, .(Year, Month), plyr::summarise, Count=sum(Count))
# Year Month Count
#1 2000 Jan 3
#2 2001 Feb 3
或者我们可以使用base R
中的aggregate
公式方法
aggregate(Count~., df, FUN=sum)
# Year Month Count
#1 2001 Feb 3
#2 2000 Jan 3
或者使用dplyr
,我们根据变量进行分组,并总结
library(dplyr)
df %>%
group_by(Year, Month) %>%
dplyr::summarise(Count=sum(Count))
# Year Month Count
# (int) (chr) (int)
#1 2000 Jan 3
#2 2001 Feb 3
或者我们将'data.frame'转换为'data.table'(setDT(df)
),按列分组,并获得'Count'的和
library(data.table)
setDT(df)[, list(Count=sum(Count)), .(Year, Month)]
# Year Month Count
#1: 2000 Jan 3
#2: 2001 Feb 3
注意:当我们加载与其他软件包类似的函数时,最好使用packagename::function
(plyr::summary
和dplyr::summary
)
数据
df您可以查看?ddply
中的示例。使用您的数据集,ddply(df,((年,月),plyr::summary,Count=sum(Count))
通过这样做,我得到了所有计数的总和(5),并且年和月没有聚合。我使用plyru 1.8.2
得到了3
和3
。我已经安装了plyr的最新版本,并用完全相同的代码编写。不知道发生了什么。尝试聚合(Count~,df,FUN=sum)
或库(dplyr);df%>%按(年、月)分组%>%dplyr::总结(计数=总和(计数))
或库(data.table);setDT(df)[,列表(计数=总和(计数)),(年,月)]
df <- structure(list(Year = c(2000L, 2000L, 2001L, 2001L),
Month = c("Jan",
"Jan", "Feb", "Feb"), Count = c(1L, 2L, 2L, 1L)), .Names = c("Year",
"Month", "Count"), class = "data.frame",
row.names = c(NA, -4L))