我希望标识包含NA且介于0和1之间的行。考虑一下这个data.table:
DT <- data.table(a = c(0, NA, NA, 0, NA, 1, 1, NA, 0, NA, 1, NA, NA, NA, 0, 1, 1, 0, NA, 0))
# DT
# a
# 1: 0
# 2: NA
# 3: NA
# 4: 0
# 5: NA
# 6: 1
# 7: 1
# 8: NA
# 9: 0
# 10: NA
# 11: 1
# 12: NA
# 13: NA
# 14: NA
# 15: 0
# 16: 1
# 17: 1
# 18: 0
# 19: NA
# 20: 0
如何识别5、8、10、12:14行?
发布于 2020-09-29 16:05:05
您可以尝试使用approx
DT[,b := approx((1:.N)[!is.na(a)],na.omit(a),1:.N)$y]
然后再申请
DT[, which(is.na(a) & b>0 & b<1)]
或
DT[, which(is.na(a) & between(b, 0, 1, FALSE))]
这给了我们
[1] 5 8 10 12 13 14
https://stackoverflow.com/questions/64114184
复制相似问题