我在 R 中生成了一组级别cut
,例如假设 0 到 1 之间的小数值,分为 0.1 个区间:
> frac <- cut(c(0, 1), breaks=10)
> levels(frac)
[1] "(-0.001,0.1]" "(0.1,0.2]" "(0.2,0.3]" "(0.3,0.4]" "(0.4,0.5]"
[6] "(0.5,0.6]" "(0.6,0.7]" "(0.7,0.8]" "(0.8,0.9]" "(0.9,1]"
给定一个向量v
包含之间的连续值[0.0, 1.0]
,如何计算元素出现的频率v
属于每个级别的levels(frac)
?
我可以自定义中断次数和/或创建级别的间隔,因此我正在寻找一种使用标准 R 命令来执行此操作的方法,以便我可以构建一个两列数据框:一列用于水平作为因子,第二列表示总元素的分数或百分比值v
超过水平。
注意:以下情况不起作用:
> table(frac)
frac
(-0.001,0.1] (0.1,0.2] (0.2,0.3] (0.3,0.4] (0.4,0.5] (0.5,0.6]
1 0 0 0 0 0
(0.6,0.7] (0.7,0.8] (0.8,0.9] (0.9,1]
0 0 0 1
如果我使用cut
on v
直接,那么当我跑步时我不会得到相同的水平cut
在不同的向量上,因为任意向量之间的值范围(最小值和最大值)会有所不同,因此虽然我可能有相同数量的中断,但级别间隔不会相同。
我的目标是采用不同的向量并将它们分入同一组级别。希望这有助于澄清我的问题。感谢您的任何帮助。