2016-08-26 9 views
0

Rの複製機能を使用して、データフレームの重複行を削除しています。重複して使用している場合は無視する

df: 

Name Rank 
    A 1 
    a 1 
    B 2 


df[!duplicated(df),] 

Name Rank 
    A 1 
    a 1 
    B 2 

第二行は第一と同じであるが、それは考慮に「A」と「」のケースをとるという理由だけで、削除されません。これを回るのは何ですか?ありがとう。

+7

を参照してください 'tolower':?あなたができる行全体のために。 – Roland

+1

@Rolandと同じことを言いました。ケースを変更できない場合は、それを回避するためにお知らせください。 –

+1

@ Hack-Rありがとうございます。それはすべてを小文字に変えていますが、私はそれを行うことはできません。 – Jain

答えて

3
# If it's okay to change the case 
df.lower  <- df 
df.lower$Name <- tolower(df$Name) 

df.lower[!duplicated(df.lower$Name),] 

# If you don't want to change the case 
df[!duplicated(df.lower$Name),] 

または

df[!duplicated(tolower(df$Name)),] 
Nameに基づいて重複除去のためだ
Name Rank 
1 A 1 
3 B 2 

単に

df.lower[!duplicated(df.lower),] # changes the case 

または

df[!duplicated(cbind(tolower(df$Name),df$Rank)),] # does not change case 
関連する問題