如何删除向量中的重复元素,类似于python

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

我有一个具有重复元素的向量,并希望将它们删除,以便每个元素仅出现一次。

在Python中,我可以从向量构建一个

Set

来实现这一目标,但是我该如何在r?中做到这一点
    

python r duplicates
4个回答
88
投票
您可以查看

unique

功能。

 > v = c(1, 1, 5, 5, 2, 2, 6, 6, 1, 3)
 > unique(v)
 [1] 1 5 2 6 3



11
投票

v[duplicated(v)]



7
投票

v <- c(1, 1, 5, 5, 5, 5, 2, 2, 6, 6, 1, 3, 3) v[c(TRUE, !v[-length(v)] == v[-1])] [1] 1 5 2 6 1 3

使用
dplyr

可以更优雅地编写同一: library(dplyr) v[v != lag(v)] [1] NA 5 2 6 1 3

返回的Na
lag()

删除了第一个值,为了保留第一个值,您可以将默认值更改为与第一个值不同的值。 v[v != lag(v, default = !v[1])] [1] 1 5 2 6 1 3



0
投票
setdiff(A,B)

自动从A和B中删除重复项,您可以通过第二个参数传递:

NA
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.