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

如何在R中按指定条件自动填充数据框的Derived_metric列?

解决R数据框Derived_metric列自动填充问题

步骤1:转换数据类型

你的Metric_1和Metric_2列是字符格式,无法直接进行数值比较,需要先转为数值型:

df$Metric_1 <- as.numeric(df$Metric_1)
df$Metric_2 <- as.numeric(df$Metric_2)

步骤2:按规则填充Derived_metric

下面提供两种实现方式,按需选择:

方式一:Base R 原生方法

利用嵌套ifelse实现规则逻辑:

df$Derived_metric <- ifelse(
  df$Metric_1 > 0.02 | df$Metric_2 > 0.02, 3,
  ifelse(
    (df$Metric_1 > 0.01 & df$Metric_1 < 0.02) | (df$Metric_2 > 0.01 & df$Metric_2 < 0.02), 2,
    ifelse(df$Metric_1 < 0.01 | df$Metric_2 < 0.01, 1, NA)
  )
)

方式二:dplyr 包方法(更清晰易读)

先加载dplyr包,再用case_when按优先级编写规则:

library(dplyr)

df <- df %>%
  mutate(Derived_metric = case_when(
    Metric_1 > 0.02 | Metric_2 > 0.02 ~ 3,
    (Metric_1 > 0.01 & Metric_1 < 0.02) | (Metric_2 > 0.01 & Metric_2 < 0.02) ~ 2,
    Metric_1 < 0.01 | Metric_2 < 0.01 ~ 1,
    TRUE ~ NA_real_ # 处理等于1%/2%的边界情况,可根据需求修改
  ))

说明

  • 规则优先级:先判断是否存在大于2%的指标,再判断1%-2%区间的指标,最后判断小于1%的指标
  • 边界值(如等于1%或2%)当前设为NA,若需要调整规则可修改对应条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:02:40