r - 如何为前四分位数(或其他分位数)中的值创建虚拟变量
问题描述
这里有一个简单的 R 问题,与这个问题有点相似,但我不知道如何将那里的见解应用到我的环境中。
我有一个数据框,其中包含几家公司的相对质量排名,例如
Firm Quality
A 4
B 5
C 2
D 0
如果质量等于或高于第 50 个百分位(否则为 0),我想添加第三列,如果质量等于或高于第 75 个百分位(否则为 0),我想添加第四列。像上面链接的解决方案似乎依赖于cut()
and within()
; 虽然它们相对较旧,但在 dplyr 之前,我想知道是否有一种好的使用方法summarise()
和 dplyr 汇总函数以更直观的方式执行此操作(至少对于这个新手而言)。
解决方案
你可以做类似的事情
library(dplyr)
df %>%
mutate(Above50 = as.numeric(Quality >= quantile(Quality, 0.5)),
Above75 = as.numeric(Quality >= quantile(Quality, 0.75)))
# Firm Quality Above50 Above75
#1 A 4 1 0
#2 B 5 1 1
#3 C 2 0 0
#4 D 0 0 0
推荐阅读
- java - 如何使用spring boot在jira任务上上传名称中带有utf-8符号的文件作为附件
- shell - 我可以知道expect shell脚本中“cat”的等效命令是什么
- vue.js - visual-studio-code 中的自动右括号不适用于 Vue 文件
- html - 尝试使用 Webkit Animation CSS 重新创建 Tom Riddle 的文本效果
- .net-core - .netcore我想一次拉500条kafka消息,怎么配置
- python - 如何在 python 中对用户输入的数字求和?(仅当它们是偶数时)
- elasticsearch - 为什么在分析 Elasticsearch 慢速请求时数字不匹配
- python - 在 python 中寻找一些关于组合学的指导
- html - Angular:无法使用 ng-style 指令设置背景封面
- python - 在一条消息中列出角色成员 - discord.py 重写