首页 > 解决方案 > 删除 R 中每个字符串的重复值

问题描述

我有一个包含两列的数据框:

 VAR1.                     VAR2.

  A.              102 million; 102 million

  B.      0.1 million; 2 million; 0.1 million; 2 million

我想删除 VAR2 的重复值。对于每一行,获得

 VAR1.           VAR2.

  A.          102 million

  B.     0.1 million; 2 million

我能怎么做?

谢谢你的建议。

标签: rduplicates

解决方案


使用基础 R,我们可以将字符串";"拆分paste uniqueVAR2

sapply(strsplit(df$VAR2, ";"), function(x) paste(unique(x), collapse = ";"))
#[1] "102 million"           "0.1 million;2 million"

使用dplyrandtidyr我们可以使用separate_rowsVAR2引入不同的行,然后每个组 paste只输入条目。unique

library(dplyr)
library(tidyr)

df %>%
 separate_rows(VAR2, sep = ";") %>%
 group_by(VAR1) %>%
 summarise(VAR2 = paste(unique(VAR2), collapse = ";"))

#  VAR1  VAR2                 
#  <fct> <chr>                
#1 A     102 million          
#2 B     0.1 million;2 million

推荐阅读