首页 文章

将字符变量更改为factor

提问于
浏览
1

我有一个R脚本,有时可以工作,有时不工作,我已经确定问题是与我的角色有关 - >因素转换,然后我将两个数据集合并在一起 .

我有一个在data1中编码为'1','2','3'等的主题列表,在data2中有'01','02','03'等,我想重新编码参与者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

    我不熟悉图书馆 forcats . 不过我会试试

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

    要么:

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

相关问题