【问题标题】:Separating the duplicating data in new columns in tidyverse在 tidyverse 中分离新列中的重复数据
【发布时间】:2019-04-17 21:20:57
【问题描述】:

我有一个大型数据库并且许多数据是重复的,我想为这些数据生成两个新列。

这里是一个简要的数据

df <- tribble(~ID, ~Code,
              1, "p",
              1, "p",
              2, "f",
              3, "p",
              2, "p",
              3, "f",
              4, "f",
              4, "p",
              6, "p")

我想获取以下数据:

	Out1	Out2
1	p	p
2	f	p
3	p	f
4	f	p
5	p	NA
我努力在 tidyverse 中单独运行来做到这一点。有什么帮助吗?

【问题讨论】:

    标签: r tidyverse


    【解决方案1】:

    一种方法是:

    df %>%
     group_by(ID) %>%
     mutate(temp = paste0("Out", seq_along(ID))) %>%
     spread(temp, Code)
    
         ID Out1  Out2 
      <dbl> <chr> <chr>
    1     1 p     p    
    2     2 f     p    
    3     3 p     f    
    4     4 f     p    
    5     6 p     <NA> 
    

    如果您还想更改 ID:

    df %>%
     group_by(ID) %>%
     mutate(temp = paste0("Out", seq_along(ID))) %>%
     spread(temp, Code) %>%
     ungroup() %>%
     mutate(ID = seq_along(ID))
    
         ID Out1  Out2 
      <int> <chr> <chr>
    1     1 p     p    
    2     2 f     p    
    3     3 p     f    
    4     4 f     p    
    5     5 p     <NA> 
    

    【讨论】:

      猜你喜欢
      • 2020-03-31
      • 2019-10-14
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 2020-09-16
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多