他の行に重複している場合、条件に基づいてデータフレームに列を追加します。他の行に重複している場合は、dplyrを使用して列を追加します。
group label value newColumn
1 1 3
1 2 4
1 3 3
1 4 5
1 5 4
2 1 6
2 2 3
2 3 9
2 4 6
2 5 1
2 6 3
私は列を追加したい:
if df$value[i] is duplicated and df$value[i] is the original, set newColumn[i] to 0;
if df$value[i] is duplicated and df$value[i] is the duplicate, set newColumn[i] to the label of the original;
if df$value[i] is not duplicated, set df$newColumn[i] to 0.
例えば:ここ
df$value[1] = 3 is duplicated, but it is the original, so we set newColumn[1] = 0;
df$value[3] = 3 is duplicated, and it is the duplicate, so we set newColumn[3] = 1 (=df$label[1]);
が私のコードです:
library(dplyr)
df <- df %>%
group_by(group) %>%
mutate(
newColumn = ifelse(row_number() == min(which(duplicated(value) | duplicated(value, fromLast = TRUE))),
label[max(which(duplicated(value) | duplicated(value, fromLast = TRUE)))],
0)
)
しかし、このような私のデータフレーム助けにならない。なにか提案を?前もって感謝します!ここで
を使用することができます「オリジナル」あなたはそれが最初の行ごとの発生を意味しますか? –
私は "オリジナル"だと思うのですが、初めてdfに現れるのです – Llopis
はい、最初に現れる番号です。 –