如何从行到列更改时间序列表的结构?

问题描述 投票:1回答:1

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

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

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

r dataframe reshape melt
1个回答
2
投票

我们可以使用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
© www.soinside.com 2019 - 2024. All rights reserved.