R:如何按每个日期和小时获取频率计数

时间:2013-08-12 15:39:02

标签: r frequency-distribution

我有一个包含四个变量的数据框:“Period”,“cell_id”,“daterank”和“timerank”。 我希望获得每个日期的单元ID的频率(每个日期有115个唯一级别(或cell_id)),每个小时按个别时间段。 “期间”是个人的数字标识符(5个人) “daterank”的值为0-29 “timerank”的值为1-24 “cell_id”是空间网格(地图上)内的单元格的数字标识符。示例值为101,102,103,104,105,201..205,2401..2405。

到目前为止我能想出怎样做的唯一方法是:

####get data by period######2051, 2483, 2507, 2627, 2723###
##tag2051##
tag2051 = subset(fr10000, Period=="2051") ###where fr10000 is the object
head(tag2051)
(d11 = subset(tag2051, daterank=="11")) 
###here, I have to go through each daterank and
timerank combination = wate of time!!
t11h2= subset(d11, timerank=="2")
t11h2
frqt11h2= table(t11h2$cell_id)
cbind(frqt11h2)

有没有办法可以为每个“daterank”获取“cell_id”的频率,并且每个“timerank”按“Period”获得,而不必不断变化 手动输入daterank和timerank值?

2 个答案:

答案 0 :(得分:1)

未测试(在使用以下函数之前应格式化日期和时间,mydata是您的数据)

library(plyr)
ddply(mydata,.(cell_id,daterank,timerank), transform,freq=length(cell_id))

答案 1 :(得分:1)

你不能这样做吗?

with( dat, table(cell_id, daterank, timerank, Period))

如果您只想获得评论中的4个项目: 2051,2483,2507,2627,2723然后只是将数据元素限制为它们或我们使用%in%短语。