[英]Using case_when() within mutate() to create levels for a factor variable
我想创建一个因子变量,其中所有标点符号均已正确标记,并且所有字符均标记为“ char”
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"
您的代码中有几个错误:
Character
放在引号中并将其视为字符串-语法高亮在此处提供了提示。 mutate
返回一个小标题,您应该将其分配给例如chars
。 绝对不是chars$punc
。 chars$
是多余的。 这给我们留下了:
chars <- read.xlsx("ccp35.xlsx", sheet="CCP") %>%
as_tibble() %>%
mutate(
punc = case_when(
Character == "," ~ "comma",
Character == "。" | Character == "?" ~ "stop",
TRUE ~ "char"
)
)
我也敦促您一致地设置代码格式,并始终在中缀运算符周围放置单个空格(如我的代码中所述)。
我没有您的数据,但是您似乎忘记了在"Character"=="?"
之前添加“ chars $ "Character"=="?"
。 更改chars$Character =="。"| "Character" =="?" ~ "stop"
chars$Character =="。"| "Character" =="?" ~ "stop"
with chars$Character =="。" | chars$Character =="?" ~ "stop"
chars$Character =="。" | chars$Character =="?" ~ "stop"
,看看会发生什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.