我目前正在学习R,并试图将数据集分为年龄组。然而,我收到了以下错误消息:
Error in mutate():
ℹ In argument: age_group = case_when(...).
Caused by error in case_when():
! Failed to evaluate the left-hand side of formula 1.
Caused by error in vec_compare():
! Can't combine ..1 <haven_labelled> and ..2 <double>.
字符串
我的命令是:
ess10_de <- mutate(ess10_de, age_group = case_when(agea>=15 & agea <30 ~1,
agea>=30 & agea<50 ~2,
agea>=50 & agea<70 ~3,
agea>=70 & agea<91 ~4,
is.na(agea) ~ NA_real_))
型
我做错了什么?
1条答案
按热度按时间eblbsuwk1#
欢迎来到平台!这里的错误信息实际上很清楚:当你要求R创建年龄组时,它需要进行比较,例如
agea >= 15
。即使agea
看起来像数字(因此应该与15
相当),显然它附带了Stata标签,因此被认为是haven_labelled
类型。我无法访问您的数据,但您可以尝试下面的两个函数来删除所有Stata标签,并最终获得“干净”的数据。
字符串
另一个提示(尽管与错误消息无关):您不必使用Stata定义年龄组的繁琐方法-相反,您可以使用
cut()
:型
.其中
x
是数据中的列,labels
在R中是可选的。