r - 如果 R 中的其他值是 NA,我如何使某些行值 NA?
问题描述
我有一个包含三列Time
、观察值 ( Obs.Value
) 和插值 ( ) 的数据框Interp.Value
。如果 的值Obs.Value
是NA
那么 的值Interp.Value
也应该是NA
。我可以整行NA
,但我需要保持Time
价值。
这是重复:
dat <- data.frame(matrix(ncol = 3, nrow = 10))
x <- c("Time", "Obs.Value", "Interp.Value")
colnames(dat) <- x
dat$Time <- seq(1,10,1)
dat$Obs.Value <- c(5,6,7,NA,NA,5,4,3,NA,2)
interp <- approx(dat$Time,dat$Obs.Value,dat$Time)
dat$Interp.Value <- round(interp$y,1)
这是构成整行的代码NA
dat[with(dat, is.na(Obs.Value)|is.na("Interp.Value")),] <- NA
以下是输出的样子:
Time Obs.Value Interp.Value
1 1 5 5
2 2 6 6
3 3 7 7
4 4 NA NA
5 5 NA NA
6 6 5 5
7 7 4 4
8 8 3 3
9 9 NA NA
10 10 2 2
解决方案
dat$Interp.Value[is.na(dat$Obs.Value)] <- NA
dat
# Time Obs.Value Interp.Value
# 1 1 5 5
# 2 2 6 6
# 3 3 7 7
# 4 4 NA NA
# 5 5 NA NA
# 6 6 5 5
# 7 7 4 4
# 8 8 3 3
# 9 9 NA NA
# 10 10 2 2
或者,如果任一列NA
都足够,那么
dat[!complete.cases(dat[,-1]),-1] <- NA
推荐阅读
- python - 服务 Odoo 11
- linux - 以下命令的目的是什么?
- python-3.x - 如何使用 svg 字体绘制文本
- azure - 如何将 Azure Data Lake Store gen 2 File Share 与 Azure Databricks 连接?
- c++ - 避免使用模板类型过度重复
- material-ui - Material-UI 表格分页翻译
- azure-cosmosdb - CosmosDB Mongo API 复合唯一索引是否要求每个字段都是唯一的?
- mysql - 试图将 SQL Server 转换为 MySql 以供上课
- node.js - 在 PM2 的集群模式下运行我的 Puppeteer 应用程序并没有利用多个进程
- azure - 无法在 Azure 中使用 CosmosDB Binding 作为 SpringBoot App 运行时间触发函数