R 计算一个范围内的频率
假设我有以下data.frame: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
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不会听到您的建议,因为这是编辑窗口下方的小标记格式建议中建议的内容。不理解您的评论。您能帮我解决您所指的问题吗?我应该怎么做?谢谢