2016-07-11 13 views
-2

で重複をマークしない私は、私が作成DF2新しいデータフレームを望んDFはどのように私は私が1列</p> <p>例に関して、私の重複値をマークしたい新しい列

X Y Z 
1 4 5 
2 5 7 
1 3 6 
7 2 7 

を持っていますXが重複しているかどうかを示す新しい列dup

X Y Z dup 
1 4 5 TRUE 
2 5 7 FALSE 
1 3 6 TRUE 
7 2 7 FALSE 

どのようにすればいいのですか?あなたは、グループごとに1行以上のものを持っているあなたの一般的なフィールドでグループ化し、チェック、data.tableであることを行うことができます

+0

ありがとうpは混乱します –

答えて

1

library(data.table) 
dt <- fread("X Y Z 
1 4 5 
2 5 7 
1 3 6 
7 2 7") 

dt[, dup := .N > 1, by = X] 

    X Y Z dup 
1: 1 4 5 TRUE 
2: 2 5 7 FALSE 
3: 1 3 6 TRUE 
4: 7 2 7 FALSE 
1

はここave()を利用する方法です。

df$dup <- ave(df$X, df$X, FUN = length) > 1L; 
df; 
## X Y Z dup 
## 1 1 4 5 TRUE 
## 2 2 5 7 FALSE 
## 3 1 3 6 TRUE 
## 4 7 2 7 FALSE 
+0

@ ProcrastinatusMaximusプロ空白? – bgoldst

+0

これは読みやすさを向上させます;-)(これは答えにとって重要です) – Jaap

+0

:) – bgoldst

1

duplicatedを使用してベースRから:

df2 <- df 
df2$dup <- c(duplicated(df2$X, fromLast = TRUE) | duplicated(df2$X)) 
関連する問題

 関連する問題