R 计算一个范围内的频率

R 计算一个范围内的频率,r,count,range,R,Count,Range,假设我有以下data.frame: var=c("A","B","C","A","B","C","A","B","C") time_sec=c(11.2,7.38,148.05,141.77,44.44,293.23,111.08,35.22,59.01) dur_sec=c(7,3,2,1,5,2,4,6,2) headers=c("var","time_sec","dur_sec") g=data.frame(var, time_sec,dur_sec) g 这是我的输出: var ti

假设我有以下data.frame:

var=c("A","B","C","A","B","C","A","B","C")
time_sec=c(11.2,7.38,148.05,141.77,44.44,293.23,111.08,35.22,59.01)
dur_sec=c(7,3,2,1,5,2,4,6,2)
headers=c("var","time_sec","dur_sec")

g=data.frame(var, time_sec,dur_sec)
g
这是我的输出:

var time_sec    duration_sec
A   11.2         7
B   7.38         3
C   148.05       2
A   141.77       1
B   44.44        5
C   293.23       2
A   111.08       4
B   35.22        6
C   59.01        2
获取包含第一、第二、第三和第四分钟内每个变量的频率数的表格的最快方法是什么?另外,我希望在输出中有一列包含计数总和

这就是我所想象的:

range (min) var  Freq  Sum (sec)
0-1         A    1     157.25
            B    3
            C    1
1-2         A    1     111.08
            B    0
            C    0
2-3         A    1     141.77
            B    0
            C    1
3-4         A    0     293.13
            B    0
            C    1

您可以使用
cut
创建
范围
,即
库(data.table);setDT(g)[范围:=切割(时间秒/60,断裂=0:5)];g[,(Freq=.N,Sum=Sum(time_sec)),(range,var)]
@acrun:我将您的代码应用于我的原始数据,并有一些问题。我的数据中的输出显示在
NA
range
下,但是,
Freq
Sum
已填充。它是否与
中断有关?你能给我解释一下为什么你选择了0:5,它代表什么吗。感谢you@acrun:我想,我明白了为什么在
范围
列中有
NA
。我的一些变量从0.00开始。您的代码可能没有将其包含在
(0,1]范围
。如果您使用@acrunI used@acrun来提及Akrun,我想Akrun不会听到您的建议,因为这是编辑窗口下方的小标记格式建议中建议的内容。不理解您的评论。您能帮我解决您所指的问题吗?我应该怎么做?谢谢