【发布时间】:2021-06-15 22:13:10
【问题描述】:
处理一些杂乱的数据并想知道between() 是否可以以任何方式处理 NA 值?如果以后有问题要过滤掉,期望的操作就是返回 NA。
library(data.table)
test <- data.frame(date=sample(1:9,1e7,replace = TRUE),
zip1=rep(1,1e7),
start1=c(rep(1,1e7-1),NA),
end1=rep(3,1e7),
zip2=c(rep(2,1e7-1e2),rep(NA,1e2)),
start2=c(rep(4,1e7-1e2),rep(NA,1e2)),
end2=c(rep(6,1e7-1e2),rep(NA,1e2)),
zip3=c(rep(3,1e7-1e4),rep(NA,1e4)),
start3=c(rep(7,1e7-1e4),rep(NA,1e4)),
end3=c(rep(9,1e7-1e4),rep(NA,1e4)))
test$zip <- fcase(
between(test$date, test$start1, test$end1),
test$zip1,
between(test$date, test$start2, test$end2),
test$zip2,
between(test$date, test$start3, test$end3),
test$zip3
)
【问题讨论】:
-
我不确定确切的问题,但
between有一个NAbounds=参数,例如:between(3, 1, NA, NAbounds=NA)返回NA而不是TRUE。 -
哈,是的。我无法让它工作,这就是我发布的原因。我刚刚意识到我也加载了 tidyverse,这确实是我的问题。 NAbounds+明确命名
data.table::between()我准备好了。如果您想要上网点,请随时回答。
标签: r data.table