【问题标题】:How to transform a data frame by using pivot_longer如何使用 pivot_longer 转换数据框
【发布时间】:2022-08-15 15:35:46
【问题描述】:

我有以下数据集

df <- data.table(
  id = c(1),
  field_a.x = c(10),
  field_a.y = c(20),
  field_b.x = c(30),
  field_b.y = c(40))

而且,我想把它变成

df_result <- data.table(
  id = c(1),
  field_name = c(\"field_a\", \"field_b\"),
  x = c(10, 30),
  y = c(20, 40))

通过使用考虑后缀 \".x\" 和 \".y\" 的 \"pivot_longer\" 函数。

在我的真实数据中,这将是更多的领域。但我想看看如何处理它 2 例如。

谢谢!

    标签: r dataframe pivot tidyr


    【解决方案1】:

    您可以在names_to 中设置".value" 并提供names_sepnames_pattern 之一来指定如何拆分列名。

    library(tidyr)
    
    df %>%
      pivot_longer(-1, names_to = c("field_name", ".value"), names_sep = "\\.")
    
    # # A tibble: 2 × 4
    #      id field_name     x     y
    #   <dbl> <chr>      <dbl> <dbl>
    # 1     1 field_a       10    20
    # 2     1 field_b       30    40
    

    names_sep = "\\." 可以替换为 names_pattern = "(.+)\\.(.+)"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-06
      • 2022-11-24
      • 1970-01-01
      • 2023-03-13
      • 2018-12-06
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      相关资源
      最近更新 更多