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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

慕無忌1623718 2019-07-16 10:18:04
從dataframe中移除成對(duì)重復(fù)這似乎是一個(gè)簡(jiǎn)單的問題,但我似乎無法解決。如果兩個(gè)列具有相同的值,則我希望從dataframe(Df)中刪除重復(fù)項(xiàng),即使這些值位于逆序..我的意思是,假設(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ù)項(xiàng),則會(huì)得到以下數(shù)據(jù)框架:df[duplicated(df),]  a b3 A B6 B A8 C B但是,我也想刪除這個(gè)數(shù)據(jù)框架中的第6行,因?yàn)椤癆”、“B”與“B”、“A”相同。我怎么能自動(dòng)做到這一點(diǎn)?理想情況下,我可以指定要比較的兩個(gè)列,因?yàn)閿?shù)據(jù)幀可能有不同的列,而且可能相當(dāng)大。謝謝!
查看完整描述

3 回答

?
慕標(biāo)琳琳

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移除它們。


查看完整回答
反對(duì) 回復(fù) 2019-07-16
?
POPMUISE

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


查看完整回答
反對(duì) 回復(fù) 2019-07-16
  • 3 回答
  • 0 關(guān)注
  • 879 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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