在mutate()中使用case_when()为因子变量创建级别

时间:2019-01-29 21:32:50

标签: r

我想创建一个因子变量,其中所有标点符号均已正确标记,所有字符均标记为“字符”

char <- read.xlsx("ccp35.xlsx", sheet="CCP")
chars <- tbl_df(char)
chars$punc <- chars %>%
    mutate(punc = case_when(
        chars$Character =="," ~ "comma",
        chars$Character =="。"| "Character" =="?" ~ "stop"
        TRUE ~ "char"))

我尝试了不带TRUE〜“ char”行的代码,效果很好,所有字符都标记为“ NA”。

但是当我添加最后一行时,出现了错误:

Error: unexpected numeric constant in:
"chars$Character =="。"| "Character" =="?" ~ "stop"
TRUE"

2 个答案:

答案 0 :(得分:1)

您的代码中有几个错误:

  1. 您忘记了参数列表中的逗号。
  2. 您不小心将IChild放在了引号中并将其视为字符串-语法高亮在此处提供了提示。
  3. Character返回一个小标题,例如,您应将其分配给mutate。绝对不要chars
  4. 虽然不是错误,但是代码中的chars$punc是多余的。
  5. 我还建议使用名称不清楚的中间变量,并使用管道代替完整表达式。

这给我们留下了

chars$

我还敦促您一致地设置代码格式,并始终在中缀运算符周围放置单个空格(如我的代码中所述)。

答案 1 :(得分:-1)

我没有您的数据,但是您似乎忘记了在----------------------------------------- | Operation | Dictionary | BST | ----------------------------------------- | Insert | O(1) | O(log(n)) | ----------------------------------------- | Delete | O(1) | O(log(n)) | ----------------------------------------- | Search | O(1) | O(log(n)) | ----------------------------------------- 之前添加“ chars $”。用"Character"=="?"更改chars$Character =="。"| "Character" =="?" ~ "stop",看看会发生什么。