压缩数据表列中的重复项(R)

压缩数据表列中的重复项(R),r,data.table,R,Data.table,以仅包含一列的以下数据表为例。它有一个列,其中填充了字符条目,其中许多但不是所有条目都是重复的。有没有什么方法可以让我轻松地删除此列中的任何重复项,从而列出所有项目?我想拿这个: d1 V1 1: 12 W 2: 432 N 3: 37 SE 4: 12 W 5: 438 E 6: 432 N 7: 12 W 8: 432 N 9: 432 N 10: 37 SE 11: 12 W 12: 33 E 把它浓缩成这个 d2 V1 1: 12

以仅包含一列的以下数据表为例。它有一个列,其中填充了字符条目,其中许多但不是所有条目都是重复的。有没有什么方法可以让我轻松地删除此列中的任何重复项,从而列出所有项目?我想拿这个:

d1
       V1
 1:  12 W
 2: 432 N
 3: 37 SE
 4:  12 W
 5: 438 E
 6: 432 N
 7:  12 W
 8: 432 N
 9: 432 N
10: 37 SE
11:  12 W
12:  33 E
把它浓缩成这个

d2
      V1
1:  12 W
2: 432 N
3:  33 E
4: 37 SE
5: 438 E
试试这个

d2 <- d1 %>% distinct(.)
d2

删除空格后的所有内容,并使用duplicated仅保留唯一值

df[!duplicated(sub('\\s.*', '', df$V1)), , drop = FALSE]

#      V1
#1   12 W
#2  432 N
#3  37 SE
#5  438 E
#12  33 E
如果您使用的是data.table:

资料


base中的一个简单解决方案是:

d2 <- unique(d1)
df <- structure(list(V1 = c("12 W", "432 N", "37 SE", "12 W", "438 E", 
"432 N", "12 W", "432 N", "432 N", "37 SE", "12 W", "33 E")), 
class = "data.frame", row.names = c(NA, -12L))
d2 <- unique(d1)