在R中,根据相邻列中字符的匹配情况,将值替换为NA
我有一个带有测量数据(tmax,tmin)的数据框,如果在相邻列(qflag_tmax,qflag_tmin)的相应行中发现质量保证代码(“G”、“I”、“O”、“S”、“Z”、“T”),我想用NA替换该数据框 一个可复制的例子在R中,根据相邻列中字符的匹配情况,将值替换为NA,r,replace,R,Replace,我有一个带有测量数据(tmax,tmin)的数据框,如果在相邻列(qflag_tmax,qflag_tmin)的相应行中发现质量保证代码(“G”、“I”、“O”、“S”、“Z”、“T”),我想用NA替换该数据框 一个可复制的例子 set.seed(1234) df<-data.frame( id = 1:12, tmax=floor(runif(12,min=32, max=95)), tmin=floor(runif(12,min=0,max=32)), qflag_tm
set.seed(1234)
df<-data.frame(
id = 1:12,
tmax=floor(runif(12,min=32, max=95)),
tmin=floor(runif(12,min=0,max=32)),
qflag_tmax=sample(c("G","I","O","S","Z","","NA"),12, replace=TRUE),
qflag_tmin=sample(c("G","I","O","S","T","","NA"),12, replace=TRUE),
stringsAsFactors = F
)
set.seed(1234)
dfgrepl
用于模式匹配,因为在这里您要执行精确匹配,请使用%
中的%
df$tmax[df$qflag_tmax %in% c("G","I","O","S","Z","T")] <- NA
df$tmax[df$qflag\u tmax%在%c(“G”、“I”、“O”、“S”、“Z”、“T”)中]grepl
用于模式匹配,因为这里您要执行精确匹配,请使用%
中的%
df$tmax[df$qflag_tmax %in% c("G","I","O","S","Z","T")] <- NA
df$tmax[df$qflag\u tmax%c(“G”、“I”、“O”、“S”、“Z”、“T”)]我们可以使用replace
library(dplyr)
df %>%
mutate(tmax = replace(tmax, qflag_tmax %in% c("G","I","O","S","Z","T"), NA))
我们可以使用替换
library(dplyr)
df %>%
mutate(tmax = replace(tmax, qflag_tmax %in% c("G","I","O","S","Z","T"), NA))
非常感谢,这正是我需要的。非常感谢,这正是我需要的。