如何消除重复行,将信息保留到 R 中的另一列中?

问题描述 投票:0回答:1

我试图从数据集中删除重复项,但我发现行并不完全相同。因此,我试图保留信息并生成另一列。例如,假设我有以下数据:

df <- data.frame(id = c("a", "a", "b", "c", "c", "d"),
                color = c("red", "blue", "green", "blue", "green","red"))

> df
  id color
1  a   red
2  a  blue
3  b green
4  c  blue
5  c green
6  d   red

现在,我希望没有重复的 ID,因此我希望额外的信息位于另一列上。结果应该是这样的:

> df2
  id color color2
1  a   red   blue
2  b green       
3  c  blue  green
4  d   red   

有没有简单的方法可以实现这一点?

r dataframe dplyr data.table tidyverse
1个回答
0
投票

这是使用

tidyverse
包实现此操作的一种方法

library(dplyr)
library(tidyr)

df %>%
  mutate(n = row_number(),
         .by = id) %>%
  pivot_wider(
    names_from = n,
    names_prefix = 'color_',
    values_from = color
  )
#> # A tibble: 4 × 3
#>   id    color_1 color_2
#>   <chr> <chr>   <chr>  
#> 1 a     red     blue   
#> 2 b     green   <NA>   
#> 3 c     blue    green  
#> 4 d     red     <NA>

创建于 2023-10-18,使用 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.