我有一個列表:如何刪除共享值
x <- list("a" = c(1:6,32,24) , "b" = c(1:4,8,10,12,13,17,24),
"F" = c(1:5,9:15,17,18,19,20,32))
x
$a
[1] 1 2 3 4 5 6 32 24
$b
[1] 1 2 3 4 8 10 12 13 17,24
$F
[1] 1 2 3 4 5 9 10 11 12 13 14 15 17 18 19 20 32
列表中的每個向量共享一個號碼與他人元件。我如何刪除共享值以獲得以下結果?
$a
[1] 1 2 3 4 5 6 32 24
$b
[1] 8 10 12 13 17
$F
[1] 9 11 14 15 18 19 20
正如你所看到的:第一個向量不會改變。第一個和第二個向量之間的共享元素將從第二個向量中移除,然後我們將第三個向量與第一個和第二個向量進行比較之後,從第三個向量中移除共享元素。此任務的目標是聚類數據集(原始數據集包含590個對象)。
x_rev < - rev(x); lapply(seq_along(x),function(y)Reduce(setdiff,x_rev [seq(y)]))...會根據您的評論給出不同的結果。反正+1。你的解決方案是一個真正的美。 –
謝謝,詹姆斯爲你的答案,它完美的作品。 – Noor
@AndreElrico好點,你必須注意索引。我認爲'tail(x_rev,y)'會效果最好。 – James