我有一个如下所示的数据框:
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和聚合的东西而没有运气。
答案 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