这被认为不是一个好的提问方式,通常大多数海报都会使用
dput()
根据他们的数据。框架中提供了要在问题中上载的数据示例。此函数的结果将以我在下面所做的格式从控制台复制和粘贴(请参见数据)。对于未来的问题,这被认为是良好的做法。无论如何,希望此解决方案有助于:
基本R解决方案:
df1$check <- with(
df1,
vapply(
seq_along(observ2),
function(i){
if(i - 5 <= 0){
NA
}else{
ir <- max(i-10, 1)
ir2 <- (any(observ1[ir:(i-5)] == 1) & observ2[i] == 1)
ifelse(ir2, ir2, NA)
}
},
logical(1)
)
)
数据:
df1 <- structure(list(day = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20), observ1 = c(1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), observ2 = c(0, 0,
0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -20L))