簡體   English   中英

嘗試將 fct_collapse() 與 class 日期一起使用,必須是因子或字符向量,而不是 s3 object

[英]attempt to use fct_collapse() with class Date, must be factor or character vector, not an s3 object

我有一個我想要的數據集 plot,它需要對日期進行一些簡化,這將是我的 x 軸。 現在我有從 2020 年 3 月到 2022 年 11 月的每一天,但我想使用手動定義的 6 個月期間組,剩下的只是例外(這是我在這里的第一個問題,如果需要更多上下文,請告訴我).

無論如何,我的直覺是使用 fct_collapse,但我得到了這個錯誤:

.f必須是因子或字符向量,而不是日期為 class 的 S3 object

我理解是因為我的專欄:by_date_total$date 是一個日期

我沒有看到可行的 forcats 操作,我唯一的選擇是轉換日期 class 然后將其重新轉換回日期嗎? 如果我將日期轉換為class,我設置的所需組將如何讀取? 我看到另一個答案使用 as.date.frame 將日期 class 強制轉換為字符 class,但是當我將其轉換為字符 class 時,我無法再使用 ('%y-%m-%d - %y-% m-%d') 但我想它從一開始就沒用過。

我的 dataframe by_date_total:

date      total_deaths  total_cases
<date>       <dbl>       <dbl>
2020-03-15  68  3595        
2020-03-16  91  4502        
2020-03-17  117 5901        
2020-03-18  162 8345        
2020-03-19  212 12387       
2020-03-20  277 17998       
2020-03-21  359 24507   

這是我嘗試產生錯誤的方法:

plot_by_date <- by_date_total%>%
  mutate(
    date2 = 
    fct_collapse(date, 
              '6 months' = c("2020-03-15" - "2020-09-14"),
              '12 months' =  c("2021-09-15" - "2021-03-14"),
              '18 months' = c("2022-03-15" - "2022-09-14"),
              '18 months+' = c("2022-09-15" - "2022-11-14"))
  )
  plot_by_date

我沒有包含 ggplot(aes()) 信息的 rest,因為我想先驗證此步驟是否有效

將其更改為字符 class 想法:再次運行上述錯誤后:

二元運算符的非數字參數

plot_by_date <- as_data_frame(by_date_total) %>%
  rename(Date = date) %>%
  mutate(Date = str_replace_all(Date, "\\D", "-"),
         Date = as.character(Date))
plot_by_date

case_when()是一個很好的選擇。

data.frame(date=as.Date(c("2020-03-16", "2020-03-14", "2021-09-16", "2022-03-16", "2022-09-16", "2022-11-15"))) %>% 
  mutate(date2 = case_when(date >= "2022-09-15" ~ "18+ months",
                           date >= "2022-03-15" ~ "18 months",
                           date >= "2021-09-15" ~ "12 months",
                           date >= "2020-03-15" ~ "6 months",
                           TRUE ~ "other"))

#        date      date2
#1 2020-03-16   6 months
#2 2020-03-14      other
#3 2021-09-16  12 months
#4 2022-03-16  18 months
#5 2022-09-16 18+ months
#6 2022-11-15 18+ months

暫無
暫無

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

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