按列值计算

时间:2014-08-07 17:35:38

标签: r

我有一个如下所示的数据框:

  month create_time request_id weekday
1     4  2014-04-25    3647895  Friday
2    12  2013-12-06    2229374  Friday
3     4  2014-04-18    3568796  Friday
4     4  2014-04-18    3564933  Friday
5     3  2014-03-07    3081503  Friday
6     4  2014-04-18    3568889  Friday

我希望在工作日之前获得request_ids的计数。我怎么能在R?中做到这一点?

我已经尝试了很多基于ddply和聚合的东西而没有运气。

4 个答案:

答案 0 :(得分:2)

尝试使用aggregate

> aggregate(request_id ~ weekday, FUN=length, dat=df)
  weekday request_id
1  Friday          6

答案 1 :(得分:2)

有几种有效的方法可以做到这一点。我通常和我可靠的sqldf()一起去。如果数据框名为D,那么

library(sqldf)
counts <- sqldf('select weekday, count(request_id) as nrequests from D group by weekday')

sqldf()可能是罗嗦的,但它很容易记住并且第一次就做对了!

答案 2 :(得分:1)

或者......你可以尝试:

count(df,"weekday")

library(plyr)
ddply(df,.(weekday),summarise,count=length(month))

答案 3 :(得分:1)

另一种选择是使用table并使用rowSums

> rowSums(with(dat, table(weekday, request_id)))
Friday 
     6