[英]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.