将字符变量更改为factor

时间:2017-05-17 16:00:46

标签: r recode

我有一个R脚本有时可以工作,有时却没有,我已经确定问题与我的角色有关 - >在将两个数据集合并在一起之前的因子转换。

我有数据2中数据1和'01','02','03'等编码为'1','2','3'等的主题列表,我想要重新编码data1中的参与者号码以匹配data2。我首先尝试将data1 $ subj转换为一个因子,然后使用forcats中的fct_recode重新编码数据。以下两个选项都不起作用:

library(forcats)
data1$subj <- as.factor(data1$subj)

data1 <- data1 %>%
  mutate(subj = fct_recode(subj,
                             "01" = "1",
                             "02" = "2",
                             "03" = "3"))

data1 <- data1 %>%
  mutate(subj = factor(subj),
  subj = fct_recode(subj,
                       "01" = "1",
                       "02" = "2",
                       "03" = "3"))

当我返回data1检查subj时,它始终作为字符变量保留,因此数据不会重新编码。

正如我上面所说,有时候它会起作用,有时却不行!我的代码中显然遗漏了一些细微差别。任何建议都非常感谢!

1 个答案:

答案 0 :(得分:0)

我不熟悉库forcats。不过我会尝试

levels(data1$subj)[levels(data1$subj)=="01"] <- "1"
[etc.]

OR:

library(plyr) 
revalue(data1$subj , c("01"="1", "02"="2","03"="3"))