所以我有一个以下格式的表:
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
我尝试使用融合和重塑,但没有成功。
答案 0 :(得分: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