我需要从分类(因子)变量
中创建一个逻辑变量(True-False)我决定使用:
dat$var[dat$var %in% c("option1")] <- TRUE
dat$var[dat$var %in% c("option2")] <- FALSE
但是我在两行中都收到以下错误信息,我的整个变量是NA:
Warning message:
In `[<-.factor`(`*tmp*`, dat$var %in% c("option1"), :
invalid factor level, NA generated
关于我可能做错的任何想法?
因素水平是正确的,我复制粘贴,以确保不会有任何拼写错误。
我想过将变量更改为vector as.logical()
,但那也没有。
答案 0 :(得分:5)
此错误是由于dat$var
是一个因素造成的。您只能将预先指定的级别的值分配给因子变量。但您可以使用以下命令创建新变量(假设option1
和option2
是唯一的值):
dat$var <- dat$var == "option1"