You need to enable JavaScript to run this app. R语言如何替换数据框中Start列对应的错误零效率值
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何替换数据框中Start列对应的错误零效率值

R语言实现重复列效率值替换的方法

你现在的原始数据框存在两组重名的Start和Efficiency列,R读取CSV时会自动为重复列名添加.1后缀做区分,核心处理逻辑是用第二组的Start-正确效率映射,替换第一组Efficiency列的0值,再提取需要的三列即可。

方法1:基础R实现(无需安装额外包)

# 构造Start和正确效率的映射表,自动过滤空值行
eff_map <- na.omit(data.frame(
  Start = df1$Start.1,
  correct_eff = df1$Efficiency.1,
  stringsAsFactors = FALSE
))
# 匹配替换0值
df1$Efficiency[df1$Efficiency == "0"] <- eff_map$correct_eff[match(df1$Start[df1$Efficiency == "0"], eff_map$Start)]
# 提取需要的列得到最终结果
df2 <- df1[, c("Start", "Efficiency", "End")]

方法2:tidyverse实现(代码更简洁易读)

library(dplyr)
df2 <- df1 %>%
  mutate(
    # 0值替换为对应正确效率,非0值保留原值
    Efficiency = ifelse(Efficiency == "0", Efficiency.1, Efficiency)
  ) %>%
  # 保留最终需要的三列
  select(Start, Efficiency, End)

如果CSV读取后空白单元格自动识别为NA,上述代码无需调整可直接运行,输出结果和你给出的df2完全一致。
内容的提问来源于stack exchange,提问作者mk894

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 18:15:05