r - 与整体数据框相比,确定分组变量的 ntile
问题描述
我有一个大的分组观察数据集,我试图得到一个四分位数或其他四分位数,每个组与其他观察结果进行比较。
我尝试了 ntile of cumsum 和类似的方法,但我对输出错误非常生气,或者每次观察都得到四分位数 1。我也尝试将 ntile 与父数据帧进行比较,r 也不喜欢那样。
我相信这非常简单,但今天我的大脑被炸了。
df <- tibble(ID= c("a", "b", "c", "d", "a", "b", "c", "d"),
population = c(10, 200, 3000, 40000, 120, 220, 3300, 44000))
df <- group_by(df, ID) %>%
summarize(quartile = ntile(2, 4))
我希望有一个 1-4 四分位数,因为它会根据人口的不同规模进行划分。
相反,一切都简单地显示为 1,我不知道为什么。
我所希望的:
ID quartile
a 1
b 2
c 3
d 4
编辑:
df <- mutate(df,
quartile = ntile(x = population, 4))
给了我正确的输出......但是在我的数据框上使用时它不能按预期工作
解决方案
group_by
这里似乎不需要
df['quartile']=ntile(df$population,4)
df
# A tibble: 4 x 3
ID population quartile
<chr> <dbl> <int>
1 a 10 1
2 b 200 2
3 c 3000 3
4 d 40000 4
推荐阅读
- python - 递归变量调试堆栈跟踪 - Google Dialogflow API
- reactjs - VSCode:带有隐式返回的箭头函数后代码颜色混乱
- sql - 如何将总计添加到此查询?
- python - 对数据使用 DBSCAN 算法
- string - 如何在字母表中推进字符串 3 个字母(凯撒密码)?
- vuejs2 - 如何在 Vue 上渲染图像对象
- javascript - 何时使用 return false 或 event.preventdefault()?
- remote-debugging - Windows 10 上的三星奥赛/传统电视远程网络检查器
- javascript - D3 分组点阵,每组 2 行
- android - 背景音乐 (MediaManager.createBackgroundMedia) 导致应用程序关闭/打开时崩溃