如何检查值是否与前一行的值相匹配? (?是动态的)

问题描述 投票:-1回答:1

这是我的数据集。 Data in

我想检查具有“潜在原始”的性别是否与“潜在重复”的性别匹配。没有指定的组,但是1个重复+ 1个或更多原始行为像一个组。

这是我想要的输出(复制它的NA是因为它与自身比较)。 Data out

感谢您的帮助。谢谢。

loops match conditional-statements lag seq
1个回答
0
投票

感谢Rahul对此进行调查。这是我尝试过的,我认为它有效。逻辑是为Duplicate和Original的每个块创建seq#first,然后使用相应的距离拉出滞后值。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.