在R中将因子变量转换为逻辑变量

4

我可以帮您将一个分类(因子)变量转化为逻辑(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

你有没有想过我可能做错了什么? 因素水平是正确的,我复制粘贴以确保不会出现任何拼写错误。 我考虑将变量更改为向量as.logical(),但那也没用。

1个回答

7

该错误是由于dat$var是一个因子变量。你只能为因子变量分配预定义的级别的值。但您可以使用以下命令创建新变量(假设option1option2是唯一的值):

dat$var <- dat$var == "option1"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接