【问题标题】:unable to conditionally revalue a variable无法有条件地重估变量
【发布时间】:2019-11-19 09:06:45
【问题描述】:

所以我试图有条件地重新评估列中的字符(例如:如果值为“1” - 将其更改为“预处理”,如果它是“2” - “后处理”。

我在网上查了一下,好像是这样的

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 库。

这似乎是一个超级简单的问题,但不知何故我很难弄清楚问题是什么。谢谢!

【问题讨论】:

    标签: r plyr


    【解决方案1】:

    看起来simon$Session 不是因子或字符向量。查看文档?revlalue,我们看到该函数仅适用于字符和向量。

    试试看

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

    另一种方法是使用来自 dplyr 的recode

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

    【讨论】:

    • 感谢您的快速回复!我试过了,得到了错误Error: unexpected '=' in "revalue(as.character(simon$Session), c(1="
    • revalue 在将引用添加到 1 和 2 后工作。非常感谢!
    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多