簡體   English   中英

R:將復雜的時間序列 dataframe 轉換為長

[英]R: Covernt a complex time series dataframe to long

這是針對 R

date <- seq(as.Date("2020/03/11"), as.Date("2020/03/16"), "day")

x_pos_a <- c(1, 5, 4, 9, 0)

x_pos_b <- c(2, 6, 9, 5, 4)

like so [...]

我有一個時間序列 dataframe 有 69 個時間點。 dataframe 中的行是日期。 從三個群體(A、B、C)測量了四個變量(pos、anx、ang、sad)。 從每個群體(x、y、z)中抽取三個樣本。 目前,變量、總體和樣本 forms 的每個組合在 dataframe 中的一列。 例如,“x_pos_A”、“x_pos_B”、“x_pos_C”、“x_anx_A”...“z_sad_b”、“z_sad_c”。

我想將它重塑為以下形狀

“日期”“變量”“人口”“樣本”“值”

我花了最后 3 個小時在論壇上尋找答案,但沒有成功。

非常感謝任何幫助! 謝謝

您可以使用pivot_longertidyr

tidyr::pivot_longer(df, 
                    cols = -date,
                    names_to = c('sample', 'variable', 'population'), 
                    names_sep = '_')

#    date       sample variable population value
#   <date>     <chr>  <chr>    <chr>      <dbl>
# 1 2020-03-11 x      pos      a              1
# 2 2020-03-11 x      pos      b              2
# 3 2020-03-12 x      pos      a              5
# 4 2020-03-12 x      pos      b              6
# 5 2020-03-13 x      pos      a              4
# 6 2020-03-13 x      pos      b              9
# 7 2020-03-14 x      pos      a              9
# 8 2020-03-14 x      pos      b              5
# 9 2020-03-15 x      pos      a              0
#10 2020-03-15 x      pos      b              4 

數據

date <- seq(as.Date("2020/03/11"), as.Date("2020/03/15"), "day")
x_pos_a <- c(1, 5, 4, 9, 0)
x_pos_b <- c(2, 6, 9, 5, 4)
df <- data.frame(date, x_pos_a, x_pos_b)

暫無
暫無

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

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