我试图从数据集中删除重复项,但我发现行并不完全相同。因此,我试图保留信息并生成另一列。例如,假设我有以下数据:
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
有没有简单的方法可以实现这一点?
这是使用
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