r - Case_when 错误'x 必须是字符向量,而不是双向量'?
问题描述
我正在尝试使用 case_when() 根据四位数字(保存为字符/字符串变量)对观察结果进行分类。
我的数据如下:
Form
2 1 0 1
1 0 1 2
2 2 0 0
2 1 0 1
我使用 case_when() 如下:
dat <- dat %>%
mutate(FormName = case_when(
(form == '2 1 0 1') ~ 'Open Left',
(form == '1 0 1 2') ~ 'Open Right',
(form == '2 2 0 0') ~ 'Spread',
TRUE ~ 0))
应该产生:
Form FormName
2 1 0 1 'Open Left'
1 0 1 2 'Open Right'
2 2 0 0 'Spread'
2 1 0 1 'Open Left'
相反,我收到以下错误:
Error: Problem with `mutate()` input `FormName`.
x must be a character vector, not a double vector.
ℹ Input `formation` is `case_when(...)`.
我不明白为什么会发生这种情况,因为“表单”列是字符变量?知道如何解决这个问题吗?
解决方案
解决此问题的最佳方法:
创建一个命名向量并使用该向量
vct = c('2 1 0 1' = "Open Left", '1 0 1 2' = "Open Right", '2 2 0 0' = "Spread")
dat %>%
mutate(FormName = vct[form])
推荐阅读
- sql - 从子查询返回多个聚合列
- python - 组合列表中的元素以形成新列表
- c# - ADO.NET - 动态循环遍历 SqlDataReader 列并将这些值分配给 C# 对象
- amazon-web-services - Terraform 给我 Fileset IDENT 错误
- python - 我正在使用 LBPH 算法,但我的面部识别和考勤功能出现此错误“raise KeyError(key) from err KeyError: 'Id'”
- flutter - 为什么这一行不颤动
- python - Keras 中的组归一化和权重标准化
- ios - 快速隐藏 UIView 动画
- delphi - FMX 旋转位图闪烁
- javascript - localhost express NodeJS服务器上的CORS问题