r - 直接在一个因子上使用 case_when
问题描述
我想不出一些简单的方法来做这个简单的事情:
我有一个变量age_cl
,它是一个以年龄为类的因子对象。
如果我想合并两个级别,我会轻松地使用forcats::fct_collapse
.
但是,现在我想将一个级别拆分为两个不同的级别(例如,“25-34”级别使用初始整数age
变量有条件地拆分为“25-29”和“30-34”)。
我在 forcats 中找不到任何等效项,因此我想使用一个标准case_when
,但它只需要字符向量作为输入......
有人对此有任何想法吗?
非常感谢
解决方案
你考虑过cut
吗?您可以为其放置自定义中断和标签。
breaks <- c(24, 29, 34)
labels <- paste(breaks[-length(breaks)] + 1, breaks[-1], sep = '-')
labels
#[1] "25-29" "30-34"
transform(df, age_cl = cut(age, breaks, labels))
# age age_cl age_cl_expected
#1 25 25-29 25-29
#2 26 25-29 25-29
#3 27 25-29 25-29
#4 28 25-29 25-29
#5 29 25-29 25-29
#6 30 30-34 30-34
#7 31 30-34 30-34
#8 32 30-34 30-34
#9 33 30-34 30-34
#10 34 30-34 30-34
推荐阅读
- wso2 - 在 WSO Api Manager 3.2 中通过中介将具有内容类型 application/pdf 的传入 PDF 二进制文件转换为 base64
- javascript - JavaScript 多种形式
- macos - Vscode 终端上的 Nix
- go - 从 Go 在 Tarantool 中运行 SQL 查询是静默的(没有错误)
- c# - 具有过滤器功能的组合框 - 在“组合框”类型中找不到可附加属性
- css - 有没有办法让一行中的两个 flexbox 项目堆叠为一列?
- html - 在 Markdown 中添加后备图像
- asp.net - 为什么应用程序在测试环境中抛出错误,但在使用 ASP.NET Web 窗体和 MSAL 的本地计算机上工作正常?
- python - 如何在 python 中访问 windows 互斥锁?
- ios - 与文本长度无关,在 UIButton 的右上角对齐图像