【问题标题】:gather and spread with dplyr easy example使用 dplyr 简单示例收集和传播
【发布时间】:2021-01-11 17:36:20
【问题描述】:

我正在努力学习收集和传播写作的理念。 如果您有一个如下所示的数据框:

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

我觉得这是一个愚蠢的问题,但很有教育意义

【问题讨论】:

  • 您可以像这样使用tidyr::spreadtidyr::spread(data, group, value)。但是,pivot_wider 是比spread 更灵活的替代方案。

标签: r dplyr tidyverse spread gather


【解决方案1】:

我们可以使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 2012-07-11
    • 2018-06-13
    • 1970-01-01
    相关资源
    最近更新 更多