【发布时间】:2021-07-30 06:47:23
【问题描述】:
new_data<-new_data%>%
mutate(dd=case_when(
edu_yr402==95 ~ NA_integer_,
edu_yr402==93|edu_yr402==94 ~ 1,
TRUE~edu_yr402))
我发誓 edu_yr402 是一个整数向量。 我用 > class(new_data$edu_yr402) 检查了它 [1] “整数” 但是,错误信息如下:
错误:mutate() 输入 dd 有问题。
x 必须是整数向量,而不是双精度向量。
i 输入dd 是case_when(...)。
一位评论者说 dd 成为逻辑向量,因为我将 NA 放在第一个字符串中。因此,我尝试了
new_data<-new_data%>%
mutate(dd=case_when(
edu_yr402==93|edu_yr402==94 ~ 1,
TRUE~edu_yr402,
edu_yr402==95 ~ NA_integer_))
但它给了我错误...
错误:mutate() 输入 dd 有问题。
x 必须是双精度向量,而不是整数向量。
i 输入dd 是case_when(...)。
【问题讨论】:
-
问题是您的列 dd 被视为
logical,因为case_when中的第一个参数会引发NA。因此,它期望所有下一个可能的值都是合乎逻辑的。 -
感谢 cmets。因此,我尝试了 new_data% mutate(dd=case_when(edu_yr402==93|edu_yr402==94 ~ 1, TRUE~edu_yr402, edu_yr402==95 ~ NA_integer_)),但它给了我另一个错误.. :错误:
mutate()输入dd有问题。 x 必须是双精度向量,而不是整数向量。 i 输入dd是case_when(...)。