保留只出现一次的向量元素或矩阵列

Nic*_*ick 5 r vector unique matrix duplicates

我有一个矩阵:

A<-t(matrix(
c(0, 0, 1,
  0, 0, 0,
  0, 0, 1,
  0, 0, 1,
  0, 0, 0,
  1, 1, 0), 3, 6))
Run Code Online (Sandbox Code Playgroud)

我需要保留只出现一次的列。因此,预期结果只是第三列:(1, 0, 1, 1, 0, 0)。

我已经找到了唯一重复的函数,但我需要更强大的东西来删除出现多次的所有列(在我的示例中是第一个和第二个)。

李哲源*_*李哲源 4

看起来我们需要一个 double duplicated

A[, !(duplicated(t(A)) | duplicated(t(A), fromLast = TRUE)), drop = FALSE]
     [,1]
[1,]    1
[2,]    0
[3,]    1
[4,]    1
[5,]    0
[6,]    0
Run Code Online (Sandbox Code Playgroud)

这个想法也适用于向量。

x <- c(1, 1, 2, 3, 4, 3, 4, 5)

x[!(duplicated(x) | duplicated(x, fromLast = TRUE))]
[1] 2 5
Run Code Online (Sandbox Code Playgroud)