第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從dataframe中移除成對重復(fù)

從dataframe中移除成對重復(fù)

夢里花落0921 2019-11-06 09:05:39
從dataframe中移除成對重復(fù)這似乎是一個簡單的問題,但我似乎無法解決。如果兩個列具有相同的值,則我希望從dataframe(Df)中刪除重復(fù)項,即使這些值位于逆序..我的意思是,假設(shè)您有以下數(shù)據(jù)框架: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)  a b1 A A2 A B3 A B4 B C5 B A6 B A7 C B8 C B如果現(xiàn)在刪除重復(fù)項,則會得到以下數(shù)據(jù)框架:df[duplicated(df),]  a b3 A B6 B A8 C B但是,我也想刪除這個數(shù)據(jù)框架中的第6行,因為“A”、“B”與“B”、“A”相同。我怎么能自動做到這一點?理想情況下,我可以指定要比較的兩個列,因為數(shù)據(jù)幀可能有不同的列,而且可能相當(dāng)大。謝謝!
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經(jīng)驗 獲得超3個贊

一種解決方案是首先對每一行進行排序。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

在這一點上,只需要刪除重復(fù)的元素:


df = df[!duplicated(df),]

df

? a b?

1 A A

2 A B

4 B C

正如注釋中提到的這封電子郵件一樣,您的代碼實際上是守住復(fù)制件。你需要用!duplicated移除它們。



查看完整回答
反對 回復(fù) 2019-11-07
?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

指定列以檢查是否還有其他列:


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



查看完整回答
反對 回復(fù) 2019-11-07
  • 3 回答
  • 0 關(guān)注
  • 523 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號