【问题标题】:Using pivot_longer with multiple paired columns in the wide dataset将 pivot_longer 与宽数据集中的多个配对列一起使用
【发布时间】:2020-09-08 11:10:26
【问题描述】:

我有一个如下所示的数据集:

input <- 
  data.frame(
    event = 1:2,
    url_1 = c("g1", "g3"),
    name_1 = c("dc", "nyc"),
    url_2 = c("g2", "g4"),
    name_2 = c("sf", "la"))

基本上有成对的索引列以宽格式粘在一起。我想转换成 long 来给出这个输出:

output <- 
  data.frame(
    event = c(1,1,2,2),
    url = c("g1", "g2", "g3", "g4"),
    name = c("dc", "sf", "nyc", "la"))

我想使用pivot_longer 执行此操作。我试过这个:

input %>% 
  pivot_longer(contains("_"))

如何获得识别列对的函数?

【问题讨论】:

    标签: r tidyverse tidyr


    【解决方案1】:

    您想在names_to 参数中使用.value

    input %>%
      pivot_longer(
        -event, 
        names_to = c(".value", "item"), 
        names_sep = "_"
      ) %>% 
      select(-item)
    
    # A tibble: 4 x 3
      event url   name 
      <int> <fct> <fct>
    1     1 g1    dc   
    2     1 g2    sf   
    3     2 g3    nyc  
    4     2 g4    la   
    

    来自this article on pivoting

    注意特殊名称 .value:这告诉 pivot_longer() 列名的那部分指定了正在测量的“值”(它将成为输出中的变量)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多