我希望我能清楚地解釋這一點。我有一個 3 個月的每日timeseries資料集,其中multiple每個ID. 每個屬性下的值存盤在不同的列中。
樣本資料
ID Date Var1 Var2
279557 1/1/2020 1 2
279557 1/2/2020 3 4
280485 1/1/2020 5 6
288785 1/2/2020 7 8
目的是為 each 聚合eachID下的值,然后為每個聚合下的 each繪制線圖。VarmonthtimeseriesIDVar
我首先想到做一個 pivot long
library(dplyr)
library(tidyverse)
ID = c("297557", "279557", "280485", "280485")
Date = c("1/1/2020", "1/2/2020", "1/1/2020", "1/2/2020")
Var1 = c("1", "3", "5", "7")
Var2 = c("2", "4", "6", "8")
df = data.frame(ID, Date, Var1, Var2)
df= df%>%
pivot_longer(-c(ID, Date))
輸出
ID Date Value
279557 1/1/2020 1
279557 1/1/2020 2
279557 1/2/2020 3
279557 1/1/2020 4
280485 1/1/2020 5
280485 1/1/2020 6
280485 1/2/2020 7
280485 1/2/2020 8
現在,為了對 eachVar下的每個值進行分組(對于 ggplot2)ID,我正在考慮創建另一個ID名為Pixel. 獨特ID應該使得,例如,對于前兩個值Var1用于297557,我可以具有一個唯一的ID等ID1.Var1的像素列之下。
Pixel ID Date Value
ID1.Var1 279557 1/1/2020 1
ID1.Var2 279557 1/1/2020 2
ID1.Var1 279557 1/1/2020 3
ID1.Var2 279557 1/2/2020 4
ID2.Var1 280485 1/1/2020 5
ID2.Var2 280485 1/1/2020 6
ID2.Var1 280485 1/2/2020 7
ID2.Var2 280485 1/2/2020 8
現在我可以使用 ggplot
ggplot(data = df, aes(x= Date, y=Value, group = Pixel))
geom_line()
xlab("")
How can I create a unique Pixel column automatically without having to manually type each unique ID under the Pixel column in R using dplyr?
uj5u.com熱心網友回復:
你可以試試
df %>%
pivot_longer(-c(ID, Date)) %>%
rowwise %>%
mutate(Pixel = paste0(c("ID",as.integer(as.factor(ID)),".",name), collapse = "")) %>% select(-name)
ID Date value Pixel
<chr> <chr> <chr> <chr>
1 279557 1/1/2020 1 ID1.Var1
2 279557 1/1/2020 2 ID1.Var2
3 279557 1/2/2020 3 ID1.Var1
4 279557 1/2/2020 4 ID1.Var2
5 280485 1/1/2020 5 ID1.Var1
6 280485 1/1/2020 6 ID1.Var2
7 280485 1/2/2020 7 ID1.Var1
8 280485 1/2/2020 8 ID1.Var2
更新
df %>%
pivot_longer(-c(ID, Date)) %>%
rowwise %>%
mutate(Pixel = paste0(c(ID,".",name), collapse = "")) %>% select(-name)
ID Date value Pixel
<chr> <chr> <chr> <chr>
1 279557 1/1/2020 1 279557.Var1
2 279557 1/1/2020 2 279557.Var2
3 279557 1/2/2020 3 279557.Var1
4 279557 1/2/2020 4 279557.Var2
5 280485 1/1/2020 5 280485.Var1
6 280485 1/1/2020 6 280485.Var2
7 280485 1/2/2020 7 280485.Var1
8 280485 1/2/2020 8 280485.Var2
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/356516.html
下一篇:如何按R中的多列分組?
