r - R中是否存在将连续变量分类为每组相等数量的观察值的函数?
问题描述
我有一个 2319 行数据框df
;我想对连续变量进行排序var
并分成指定数量的组,每组的观察数相等(或尽可能接近)。我看过一个类似的帖子,其中推荐了cut2()
from Hmisc
,但它并不总是每组提供相同数量的观察结果。例如,我使用 cut2()
df$Group <- as.numeric(cut2(df$var, g = 10))
var Group
1415 1
1004 1
1285 1
2099 2
2119 2
2427 4
...
table(df$Group)
1 2 3 4 5 6 7 8 9 10
232 232 241 223 233 246 219 243 226 224
是否有人使用/编写了不依赖于变量的基本分布(例如var
)的东西,而是依赖于数据中的观察数和指定的组数?我确实有非独特的价值观。
我想要的是更多数量的观察,例如:
table(df$Group)
1 2 3 4 5 6 7 8 9 10
232 232 231 233 231 233 232 231 231 233
解决方案
cut
/cut2
和其他函数依赖于数据的分布来创建组。如果您想要或多或少相等数量的观察,一种选择是使用rep
.
library(dplyr)
n <- 10
df %>%
arrange(var) %>%
mutate(Group = cummax(rep(seq_len(n), each = n()/n, length.out = n())))
推荐阅读
- r - 如何使具有相应小 Y 值的 X 值在直方图中更明显
- excel - 使用 If 语句循环特定工作表时出现空错误
- c - 我不能在数组中使用双精度吗?
- android - Android 处理 onStop 和 onDestroy 用户行为
- php - Laravel - 渴望加载
- django - Django 无法将新实例保存到模型中
- css - 为什么 @font-face 在 Chrome DevTools 的 Coverage 选项卡中总是显示为未使用?
- java - 无法使用spring/hibernate将两个实体注入一个jsp
- java - Spring-boot hatoas 将 hatoas 链接转换为对象而不是集合
- php - Preg 替换以添加号码