我想确定包含NA且介于零和一之间的行。考虑以下数据表:
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?
您可以尝试使用 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句