使用 dplyr 简单示例收集和传播

gather and spread with dplyr easy example

我正在尝试获得收集和传播写作的哲学。 如果您有一个如下所示的数据框:

group=c("A","A","A","B","B","B")
time =c(10,20,30,10,20,30)
value=c(20,40,80,10,10,20)

data= data.frame(group,time,value)

group time value
  A   10    20
  A   20    40
  A   30    80
  B   10    10
  B   20    10
  B   30    20

你怎么会到这里

A   B   time
20 10    10
40 10    20
80 20    30

我觉得这是个愚蠢的问题,但很有教益

我们可以使用pivot_wider

library(dplyr)
library(tidyr)
data %>% 
   pivot_wider(names_from = group, values_from = value)

-输出

# A tibble: 3 x 3
#   time     A     B
#  <dbl> <dbl> <dbl>
#1    10    20    10
#2    20    40    10
#3    30    80    20