You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R将data.frame中超出5%/95%分位数的离群值替换为NA

R实现分位数法替换离群值为NA

核心逻辑

  • 仅处理数据框中的数值型列,非数值列(如示例中的站点标识列st)不做修改
  • 对每个数值列计算5%分位数和95%分位数,计算时默认跳过原始数据中的空值避免报错
  • 满足小于5%分位数或大于95%分位数的数值判定为离群值,替换为NA

补充说明:如果需要调整分位数的计算逻辑,可以修改quantile()函数的type参数,取值范围1-9,不同参数对应不同行业常用的分位数计算规则,默认type=7为R通用标准。

基础R实现代码

# 加载示例数据
df=read.table(text="st  PH  OD  COD N
A   7.3 1.26301094  1.112359589 0.295842925
B   12.69875867 5.670646078 4.841748321 0.096958426
C   9.613564343 1.706277385 7.952266541 0.102672152
D   9.693461149 7.075560183 0.283503075 0.302494648
A   11.2031501  5.444756127 3.133271063 0.421172108
B   9.288552402 4.169068095 10.54049312 0.122900615
C   4.207333379 6.717653051 10.49073885 0.085634135
D   10.98593946 2.352068972 8.468436777 0.142284793
A   8.20679887  7.826764274 4.464242367 0.211200956
B   12.9165421  0.909886436 1.488358471 0.001640961
C   3.971088246 8.500668307 6.315208679 0.319835127
D   4.821068685 3.871082236 8.669284239 0.349317325
A   0.431563127 0.978922921 10.53756208 0.111929377
B   7.546887828 9.946840115 1.584013576 0.426681716
C   4.689617182 8.717656795 7.474709944 0.473463497
D   9.730568456 1.134763618 4.679810195 0.215744107
A   12.06381259 6.862549062 0.559497593 0.231984105
", 
sep = "", header = TRUE)

# 离群值替换处理
df_processed <- df
for (col in names(df_processed)) {
  # 跳过非数值列
  if (!is.numeric(df_processed[[col]])) next
  q5 <- quantile(df_processed[[col]], 0.05, na.rm = TRUE)
  q95 <- quantile(df_processed[[col]], 0.95, na.rm = TRUE)
  # 替换离群值为NA
  df_processed[[col]][df_processed[[col]] < q5 | df_processed[[col]] > q95] <- NA
}

tidyverse(dplyr)实现代码

适合习惯tidyverse生态的用户使用,写法更简洁:

library(dplyr)

df_processed <- df %>%
  mutate(across(where(is.numeric), ~{
    q5 <- quantile(.x, 0.05, na.rm = TRUE)
    q95 <- quantile(.x, 0.95, na.rm = TRUE)
    ifelse(.x < q5 | .x > q95, NA, .x)
  }))

结果验证

执行完成后可以通过head(df_processed)或者summary(df_processed)查看替换结果,示例数据中PH列的0.43、12.92,N列的0.0016等离群值都会被替换为NA。

内容的提问来源于stack exchange,提问作者wesleysc352

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:36:06