r语言 - 将数据框中某列的非NA值替换为常量



在我的data下面,我想只替换NONE NAyi的值,其索引由indTuke_max值给出,这是可能的(保持NA值不变)?

完全可复制的代码如下。

data <- read.csv("https://raw.githubusercontent.com/ilzl/i/master/j.csv")
first_third_QR <- with(data, fivenum(yi, na.rm = TRUE))[c(2,4)]
inter_QR <- with(data, IQR(yi, na.rm = TRUE))
Tukey_min <- first_third_QR[1] - (3 * inter_QR )
Tukey_max <- first_third_QR[2] + (3 * inter_QR )
ind <- with(data, yi < Tukey_min | yi > Tukey_max)
( yi_vec <- with(data, yi[ind]) ) # Replace the none NA `yi` values below in the `data` 
# with Tukey_max (leave NAs untouched)
#[1] 4.122057 3.457194 3.071523 3.545027 4.454427       NA       NA       NA
#[9]       NA       NA       NA       NA       NA       NA       NA 4.119231 
#[17] 3.977800 6.412906

需要做两件事,以获得ind与非NA的结合,并通过数值进行索引,以便不将NA作为索引。
一行程序将做。

data$yi[ which(ind & !is.na(data$yi)) ] <- Tukey_max

最新更新