簡體   English   中英

dplyr,突變:使用“case_when”時出錯

[英]dplyr, mutation: error when using “case_when”

我正在嘗試根據我已經擁有的連續工資變量創建一個新的工資組變量。 這是我擁有的代碼,它在其他類似情況下運行良好:

     df  <-  df %>% mutate(wagegroup = case_when(wage_total < 100 ~ 'below 100 €/m',
    wage_total >= 100 & wage_total <= 546 ~ '100 - 546 €/m', 
    wage_total >= 546,1 & wage_total <= 1000 ~ '565,1 - 1000 €/m', 
    wage_total >= 1000,1 & wage_total <= 1500 ~ '1000,1 - 1500 €/m', 
    wage_total >= 1500,1 & wage_total <= 2000 ~ '1500,1 - 2000 €/m', 
    wage_total >= 2000,1 ~ 'over 2000,1 €/m'))

我得到一個錯誤代碼:

x Case 3 (`wage_total < 100 ~ "below 100 \200/m"`) must be a two-sided formula, not a logical vector.

我想知道這里有什么問題? 我只是 Rstudio 的初學者,所以非常感謝您的幫助:)

您的代碼中似乎有一些無關的字符。 我試圖對你正在嘗試做的事情做出最好的猜測:

df <- data.frame(wage_total = c(100, 200, 300, 500, 600, 1020, 1038))

df  <-  df %>% mutate(wagegroup = case_when(wage_total < 100 ~ 'below 100 €/m',
                                            wage_total >= 100 & wage_total <= 546 ~ '100 - 546 €/m', 
                                            wage_total >= 546 & wage_total <= 1000 ~ '565 - 1000 €/m', 
                                            wage_total >= 1000 & wage_total <= 1500 ~ '1000 - 1500 €/m', 
                                            wage_total >= 1500 & wage_total <= 2000 ~ '1500 - 2000 €/m', 
                                            wage_total >= 2000 ~ 'over 2000 €/m'))

df
#   wage_total       wagegroup
# 1        100   100 - 546 €/m
# 2        200   100 - 546 €/m
# 3        300   100 - 546 €/m
# 4        500   100 - 546 €/m
# 5        600  565 - 1000 €/m
# 6       1020 1000 - 1500 €/m
# 7       1038 1000 - 1500 €/m

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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