【发布时间】:2015-12-22 09:25:17
【问题描述】:
我对 dplyr 有点小白,我知道这很容易解决。我有某些事件的数据,“X”、“Y”和“Z”以及这些事件发生的日期列表。可以通过以下方式生成示例:
days.14<-seq(as.Date("2014/1/1"),as.Date("2014/12/31"),by="days")
X<-c("X","")
Y<-c("Y","")
Z<-c("Z","")
data<-as.data.frame(sample(days.14,200,replace=TRUE))
data$X<-sample(X,200,replace=TRUE)
data$Y<-sample(Y,200,replace=TRUE)
data$Z<-sample(Z,200,replace=TRUE)
names(data)[1]<-"date"
data<-data[order(as.Date(data$date, format="%Y-%m-%d")),]
我正在尝试使用 dplyr 包对按天分组的每个事件进行计数。因此,不是数据中的一行表示事件发生的日期,而是数据集中的所有日期以及每个事件发生的次数。所以不要像这样:
2014-01-01 Z
2014-01-01 Y Z
2014-01-01 X
2014-01-02 X Y Z
我正在尝试使用 dplyr 来获取:
date X Y Z
--------------------
2014-01-01 1 1 2
2014-01-01 1 1 1
我用来完成此操作的代码不适用于字符向量。
counts = data%>% group_by(factor(date))%>%
summarise(X=sum(X),
Y=sum(Y),
Z=sum(Z))
我通常生成计数的方式是通过 table 函数,但这不适用于 dplyr。
【问题讨论】:
-
请在抽取随机样本之前使用
set.seed构建示例。