gpt4 book ai didi

r - 计算级别内的值

转载 作者:行者123 更新时间:2023-12-02 07:22:16 25 4
gpt4 key购买 nike

我在 R 中使用 cut 生成了一组级别,例如说 0 到 1 之间的分数值,分解为 0.1 个 bin:

> 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]"

给定一个包含 [0.0, 1.0] 之间的连续值的向量 v,我如何计算 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

如果我直接在 v 上使用 cut,那么当我在不同的向量上运行 cut 时,我不会得到相同的级别,因为值的范围——它们的最小值和最大值——在任意向量之间会有所不同,因此虽然我可能有相同数量的中断,但水平间隔不会相同。

我的目标是采用不同的向量并将它们分箱到同一组级别。希望这有助于澄清我的问题。感谢您的帮助。

最佳答案

修改 frac 以实际表示您想要的间隔,然后使用 table 函数:

x = runif(100) # For example.
frac = cut(x, breaks = seq(0, 1, 0.1))
table(frac)

结果:

frac
(0,0.1] (0.1,0.2] (0.2,0.3] (0.3,0.4] (0.4,0.5] (0.5,0.6] (0.6,0.7] (0.7,0.8]
14 9 8 10 8 12 7 7
(0.8,0.9] (0.9,1]
16 9

关于r - 计算级别内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42541994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com