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

使用dplyr的mutate_at结合pmin实现数值屏蔽与取整处理

解决方案:次小值取整至最近百位的实现

R 实现方案

示例数据与前置处理

# 构造示例数据
df <- data.frame(
  Group1 = c(150, 220, 80, 310, 450),
  Group2 = c(90, 280, 190, 350, 500),
  Total = c(240, 500, 270, 660, 950)
)

# 已完成的阈值屏蔽:将<100的值设为NA
df[df < 100] <- NA

次小值处理函数

process_second_min <- function(col) {
  # 提取非NA的唯一值,避免重复值干扰次小判断
  non_na_unique <- unique(col[!is.na(col)])
  
  # 若非NA值不足2个,直接返回原列
  if (length(non_na_unique) < 2) {
    return(col)
  }
  
  # 排序后取次小值
  sorted_vals <- sort(non_na_unique)
  second_min <- sorted_vals[2]
  
  # 取整至最近百位
  rounded_val <- round(second_min / 100) * 100
  
  # 替换原列中的次小值
  col[col == second_min] <- rounded_val
  return(col)
}

应用到数据列

# 处理所有数值分组列
numeric_groups <- setdiff(names(df), "Total")
df[numeric_groups] <- lapply(df[numeric_groups], process_second_min)

# 单独处理合计列
df$Total <- process_second_min(df$Total)

Python 实现方案

示例数据与前置处理

import pandas as pd
import numpy as np

# 构造示例数据
df = pd.DataFrame({
    'Group1': [150, 220, 80, 310, 450],
    'Group2': [90, 280, 190, 350, 500],
    'Total': [240, 500, 270, 660, 950]
})

# 已完成的阈值屏蔽:将<100的值设为NA
df[df < 100] = np.nan

次小值处理函数

def process_second_min(col):
    # 提取非NA的唯一值
    non_na_unique = col.dropna().unique()
    
    # 若非NA值不足2个,直接返回原列
    if len(non_na_unique) < 2:
        return col
    
    # 排序后取次小值
    sorted_vals = np.sort(non_na_unique)
    second_min = sorted_vals[1]
    
    # 取整至最近百位
    rounded_val = round(second_min / 100) * 100
    
    # 替换原列中的次小值
    col.loc[col == second_min] = rounded_val
    return col

应用到数据列

# 处理所有数值分组列
numeric_groups = df.columns.drop('Total')
df[numeric_groups] = df[numeric_groups].apply(process_second_min)

# 单独处理合计列
df['Total'] = process_second_min(df['Total'])

关键说明

  • 去重逻辑:先提取唯一值再排序,避免因重复最小值导致次小值判断错误(例如列中存在多个相同的最小值时,次小值不应与最小值重复)。
  • 边界处理:当列中非NA值不足2个时,不做任何修改,避免报错。
  • 取整调整:若需强制向上/向下取整,可将round()替换为math.ceil()或math.floor()(Python需导入math模块,R使用ceiling()或floor())。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:15:37