r - 基于另一列年份创建新列
问题描述
我正在尝试根据另一列在我的 data.frame 中创建一个新列。
我的数据框称为 dat.cp2,其中的一列有 1990-2017 年的某一年,您可以在此处查看我的数据的外观。“ar”列表示一年。
我需要用句点创建一个名为“TB”的新列。例如,第一个时期是 1990-1996,我希望那个时期被称为“TB1”.. 1997-2003 是“TB2”等等。因此,对于 1995 年出生的人来说,新列显示为“TB1”。
我试过了:
dat.cp2 %>% mutate(TB =
case_when(ar <=1996 ~ "TB1",
ar >=1997&<=2003 ~ "TB2",
ar >=2004&<=2010 ~ "TB3",
ar >=2011 ~ "TB4")
但我收到错误消息:
Error: unexpected '<=' in:
" case_when(ar <=1996 ~ "TB1",
ar >=1997&<="
我试过寻找答案,但找不到任何答案。有人可以帮忙吗?
解决方案
您实际上并不需要,&
因为您是按顺序工作的,您也可以使用以下方式完成TRUE
:
dat.cp2 %>%
mutate(
TB = case_when(ar <= 1996 ~ 'TB1',
ar <= 2003 ~ 'TB2',
ar <= 2010 ~ 'TB3',
TRUE ~ 'TB4')
)
推荐阅读
- ios - 无法在实时数据库 iOS Xcode 上写入数据
- php - 云端 + EC2 + PHP
- seedstack - 是否有任何可用的种子堆栈培训
- c++ - 引用在 std::bind 中没用?
- capl - CANoe / CAPL 设置信号的最佳实践 - 交互层或 SysVars
- python - AttributeError:“MLPClassifier”对象没有属性“best_loss_”
- c# - 在没有 PDB 的情况下调试程序集
- html - powershell 是否有任何先决条件才能控制 IE 导航?
- firebase - 如何使用颤振在firebase中添加额外的用户数据,如displayName?
- kubernetes - Kubectl 导出已弃用。任何替代品