[英]Grouping in new variable based on a time frame in R
我有一個包含兩列的 df,一列帶有日期,一列帶有值。 我想用 gglot 繪制這些值,使用 geom_col。
然而,在過去的時間里有“干預”,這影響了價值觀。 我想通過讓條形在某個日期后改變顏色來突出這些干預措施。
一種方法是使用因子變量(如 TF1、TF2、TF2)創建一個新列(“更改”),並在 aes 部分中設置這些變量。 所以我正在尋找的是一段代碼,它的工作原理如下:
df$Change
為 TF1df$Change
為 TF2df$Change
為 TF3到目前為止我嘗試過的是:
QASTART = as.Date('2020-03-16')
df <- df %>% mutate(Change = Datum >= QASTART)
但它只給了我兩個類別來處理。 我想要至少三個或可能更多。
這是我的 df 的負責人:
structure(list(Date = structure(c(17595, 17602, 17609, 17616,
17623, 17630), class = "Date"), UPV = c(756L, 696L, 704L, 661L,
713L, 649L)), row.names = c(NA, 6L), class = "data.frame")
謝謝!
提出的 case_when-solution 對我有用。 可能有比這更優雅的解決方案,但這就是我所做的。
A = as.Date('2018-03-05')
B = as.Date('2020-03-15')
C = as.Date('2020-03-16')
D = as.Date('2020-07-12')
E = as.Date('2020-07-13')
G = as.Date('2020-08-31')
df <- df %>% mutate(Change = case_when( between ( Datum, A, B) ~ "TF1", between(Datum, C, D) ~ "TF2", between(Datum, E, G) ~ "TF3" ))
ggplot(df, aes(Datum, UPV, col=Change))+geom_col()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.