Как проверить, соответствует ли значение предыдущему ряду? (? является динамическим) - PullRequest
0 голосов
/ 29 августа 2018

Вот мой набор данных. Данные в

Я бы хотел проверить, соответствует ли пол с «Потенциальным оригиналом» полу с «Потенциальным дубликатом». Не существует указанной группы, но 1 дубликат + 1 или более оригинала действовали как группа.

Вот вывод, который я хочу (для дубликата это NA, потому что он сравнивается с самим собой). Вывод данных

Ценю вашу помощь. Спасибо.

1 Ответ

0 голосов
/ 31 августа 2018

Спасибо, Рахул, что заглянул в это. Это то, что я пытался, и я думаю, что это сработало. Логика состоит в том, чтобы сначала создать seq # для каждого блока Duplicate и Original, а затем вывести значение задержки с соответствующим расстоянием.

 library(data.table)
 setDT(df)[, counter := seq_len(.N), by = list(cumsum(Status == "Potential 
 Duplicate"))]

for (i in 1:nrow(df)) {
  if (df$Status[i]=="Potential Duplicate") {
   df$Gender_LAG[i] <-df2$Gender[i]
                                             } 
   else {
     df$Gender_LAG[i]<-df2$Gender[i-df2$counter[i]+1]
        }
                        }

Спасибо. С нетерпением жду возможности увидеть другие варианты.

...