簡體   English   中英

在mutate()中使用case_when()為因子變量創建級別

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

您的代碼中有幾個錯誤:

  1. 您在參數列表中忘記了逗號。
  2. 您不小心將Character放在引號中並將其視為字符串-語法高亮在此處提供了提示。
  3. mutate返回一個小標題,您應該將其分配給例如chars 絕對不是chars$punc
  4. 雖然不是錯誤,但是代碼中的chars$是多余的。
  5. 我還建議使用名稱不明確的中間變量,並使用管道代替完整表達式。

這給我們留下了:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM