r - 在 fcase 中处理 NA 值的函数之间的 data.table
问题描述
处理一些杂乱的数据并想知道是否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
)
解决方案
我想这是你想要的。
setDT(test)[,zip:=fcase(date %between% list(start1,end1),zip1,
date %between% list(start2,end2),zip2,
date %between% list(start3,end3),zip3)]
推荐阅读
- linux-kernel - 我尝试跟踪打开的系统调用,但跟踪记录全是关于 SyS_read
- javascript - 为什么我的 Express.js 后端在 Chrome 中成功删除了 cookie,但在 Firefox 中没有?
- java - Volley 请求重试策略不考虑超时
- r - 将函数应用于参数网格并返回 purrr 中的列表列表
- javascript - Javascript数据分组和渲染
- excel - 解释查找+查找功能excel
- google-cloud-vision - Google Cloud Vision API 无法识别点阵印刷字符
- c++ - 在 Makefile 先决条件中包含头文件的原因
- python - 如何将字符串 '6 dec 2019 9pm' 转换为日期时间对象?
- python - 使用 pandas 计算百分比并存储在 csv 文件中