如何检查该值是否与上一个?th行匹配? (?是动态的)

时间:2018-08-29 11:08:04

标签: loops match conditional-statements lag seq

这是我的数据集。 Data in

我想检查“可能的原件”性别是否与“可能的重复件”性别匹配。没有指定的组,但是1个重复+ 1个或更多原件的行为类似于一个组。

这是我想要的输出(重复的是NA,因为它是在与自己比较)。 Data out

感谢您的帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

感谢拉胡尔对此进行调查。这是我尝试过的,我认为它有效。逻辑是先为“重复”和“原始”的每个块创建seq#,然后拉动具有相应距离的滞后值。

 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]
        }
                        }

谢谢。 期待看到其他选择。