【问题标题】:splitting a data frame into observations [duplicate]将数据框拆分为观察值
【发布时间】:2021-02-25 18:43:34
【问题描述】:

谁能帮我找到解决办法。

所以我在这里要做的就是将一个宽表分解为一个 3 列的表:

  1. 第一列只是 ID
  2. 第二列是宽列的标题
  3. 第三列是与相关列中的 ID 关联的值。

例如,假设我有一个如下所示的表格:

id    first_name  last_name    
1     John        Doe
2     Luke        Skywalker

我想让它变成这样:

id    field            value
1     first_name       John
1     last_name        Doe
2     first_name       Luke
2     last_name        Skywalker

我确信有一个基本功能可以做到这一点,但我真的找不到它...... 感谢您的帮助!

【问题讨论】:

    标签: r dataframe split


    【解决方案1】:

    您可以使用 tidyr 包中的 gather() 函数。

    df <- tribble(
      ~id, ~first_name, ~last_name,
      1, "John",  "Doe",
      2, "Luke", "Skywalker"
    )
    
    df %>% 
      gather(field, value, first_name:last_name) %>%
      arrange(id)
    

    您还可以在 Cookbook for R 上了解其他将宽数据集转换为长数据集的方法。

    【讨论】:

    • 完美,这正是我所需要的!谢谢一百万!
    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2016-01-11
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2023-01-15
    相关资源
    最近更新 更多