【问题标题】:Reshape/Transpose duplicated rows to column in R studio在 R Studio 中将重复的行重新整形/转置为列
【发布时间】:2021-02-02 20:51:54
【问题描述】:

我的数据如下所示:

ID Name Adress Score Requirement Status
1 John CA 1 Internet OK
1 John CA 1 TV Not OK
1 John CA 1 Household OK
2 Ann LA 3 Internet Not OK
2 Ann LA 3 TV Follow up
... ... ... ... ... ...

每个“客户”的 ID 都是唯一的,第 1-3 行的 ID、名称、地址和分数都是相同的。每个客户有 3 个要求,我想将 3 个要求转换为列,并将状态作为值,以便删除重复项。如下:

ID Name Adress Score Internet TV Household
1 John CA 1 OK Not OK OK
2 Ann LA 3 Not OK Follow up OK
... ... ... ... ... ... ...

我曾尝试在 R studio 中使用 reshape 和 dcast 搜索以前的案例,但没有找到与我类似的案例。 有人能帮我吗?非常感谢!

【问题讨论】:

    标签: r replace reshape transpose


    【解决方案1】:

    你可以使用 tidyr 包中的 pivot_wider

    library(dplyr)
    library(tidyr)
    
    # your data
    df <- tribble(
      ~ID, ~Name, ~Adress, ~Score, ~Requirement, ~Status,
      1, "John", "CA", 1, "Internet", "OK", 
      1, "John", "CA", 1, "TV", "Not OK", 
      1, "John", "CA", 1, "Household", "OK", 
      2, "Ann", "LA", 3, "Internet", "Not OK", 
      2, "Ann", "LA", 3, "TV", "Follow up")
    
    
    df <- df %>% 
      pivot_wider(names_from = Requirement, values_from = Status)
    

    【讨论】:

      猜你喜欢
      • 2013-07-27
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      • 2022-01-02
      • 2022-06-28
      • 1970-01-01
      • 2020-10-23
      • 1970-01-01
      相关资源
      最近更新 更多