从R中的因子变量创建逻辑变量

时间:2014-03-12 11:32:20

标签: r logical-operators r-factor

我需要从分类(因子)变量

中创建一个逻辑变量(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(),但那也没有。

1 个答案:

答案 0 :(得分:5)

此错误是由于dat$var是一个因素造成的。您只能将预先指定的级别的值分配给因子变量。但您可以使用以下命令创建新变量(假设option1option2是唯一的值):

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