无法有条件地重估变量

时间:2019-07-09 18:40:00

标签: r plyr

因此,我尝试对列中的字符进行有条件重估(例如:如果值是“ 1”,则将其更改为“ pre-treatment”,如果值是“ 2”,则将其更改为“ post-processing”。

我已经在网上对此进行了研究,看来

simon$Session <- revalue(simon$Session, c("1" = "pre", "2" = "post"))

应该可以正常工作,但我却收到此错误

Error in revalue(simon$Session, c(`1` = "pre", `2` = "post")) : 
  x is not a factor or a character vector

我已加载plyr库。

这似乎是一个超级容易的问题,但是我不知何故很难找出问题所在。谢谢!

1 个答案:

答案 0 :(得分:0)

看起来simon$Session既不是因素也不是字符向量。查看文档?revlalue,我们发现该功能仅适用于字符和向量。

尝试做

revalue(as.character(simon$Session), c(`1` = "pre", `2` = "post"))

另一种方法是使用dplyr中的recode

simon %>% mutate(value = recode(Session,`1` = "pre", `2` = "post"))