3 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
的一種解決方案是首先對(duì)每一行進(jìn)行排序。df:
for (i in 1:nrow(df))
{
df[i, ] = sort(df[i, ])
}
df
a b
1 A A
2 A B
3 A B
4 B C
5 A B
6 A B
7 B C
8 B C
在這一點(diǎn)上,只需要?jiǎng)h除重復(fù)的元素:
df = df[!duplicated(df),]
df
a b
1 A A
2 A B
4 B C
正如注釋中提到的這封電子郵件一樣,您的代碼實(shí)際上是守住復(fù)制件。你需要用!duplicated移除它們。

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
指定列以檢查是否還有其他列:
a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c('A','B','B','C','A','A','B','B')
df <-data.frame(a,b)
df$c = sample(1:10,8)
df$d = sample(LETTERS,8)
df
? a b? c d
1 A A 10 B
2 A B? 8 S
3 A B? 7 J
4 B C? 3 Q
5 B A? 2 I
6 B A? 6 U
7 C B? 4 L
8 C B? 5 V
cols = c(1,2)
newdf = df[,cols]
for (i in 1:nrow(df)){
? ? newdf[i, ] = sort(df[i,cols])
}
df[!duplicated(newdf),]
? a b c d
1 A A 8 X
2 A B 7 L
4 B C 2 P
- 3 回答
- 0 關(guān)注
- 879 瀏覽
添加回答
舉報(bào)