2016-07-01 4 views
0

新しいデータフレーム列を作成して、行ごとの最初の列(インデックス)の値に基づいて重複する行をすばやく識別できるようにしたいと考えています。私のデータフレーム(DF)は、ほぼ18000行-観測を持ち、新しい列が呼び出されると仮定すると、「ユニークな」私は...むしろ失敗し、次の試してみました Rフレームで一意の行を探す

df$unique = ifelse(df[row.names(df):1]==df[row.names(df)-1:1], "YES", "NO") 

コードの理論的根拠はあるものとの比較同じ行の前のセルと同じ列の前のセルは、これらの値が一致しない限り、固有のエントリを与えることができます。

マイデータフレーム

index num1 num2 
1  12 12 
1  12 12 
2  14 14 
2  14 14 
2  14 14 
3  18 18 
4  19 19 
+2

あなたの質問は非常に明確ではありません。再現可能な例と望ましい出力を提供してください。 –

答えて

1

あなたはduplicated機能を使用することができます。一意でない列の最初の出現は重複ではないことに注意してください。したがって、最初と最後から2回検索する必要があります。

# Toy data, where the first two rows are identical, the third row is unique 
df <- data.frame(a = c(1, 1, 1), b = c(1, 1, 2)) 

# Find unique columns 
df$unique <- !(duplicated(df) | duplicated(df, fromLast = TRUE)) 

出力:

> df 
    a b unique 
1 1 1 FALSE 
2 1 1 FALSE 
3 1 2 TRUE 
関連する問題