r语言 - 如何将时间序列表的结构从行更改为列



所以我有一个格式如下的表格:

date <- c('t1','t1','t1','t2','t2','t2')
factor <- c('a','b','c','a','b','c')
beta <- c(1,2,4,3,5,2)
df <- data.frame(date, factor, beta)
df
 date factor beta
1   t1      a    1
2   t1      b    2
3   t1      c    4
4   t2      a    3
5   t2      b    5
6   t2      c    2

我想通过以下方式重新格式化表中的数据:

date <- c('t1','t2')
factor_a <- c(1,3)
factor_b <- c(2,5)
factor_c <- c(4,9)
df <- data.frame(date, factor_a, factor_b, factor_c)
df
  date factor_a factor_b factor_c
1   t1        1        2        4
2   t2        3        5        9

我尝试使用熔化和重塑,但我没有成功。

我们可以使用spread

library(tidyverse)
df %>% 
   mutate(factor = paste0("factor_", factor)) %>%
   spread(factor, beta)
#    date factor_a factor_b factor_c
#1   t1        1        2        4
#2   t2        3        5        2

最新更新