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

R语言用dplyr的mutate转换千克为吨后修改未保存到原数据集如何解决

你的代码存在3个明显问题,修改后即可实现需求:

  • dplyr管道操作的处理结果没有赋值回原数据框df,修改不会自动保存到原数据
  • 提前用filter()筛选后仅保留了千克单位的行,丢失了原数据中吨单位的行
  • group_by(Quantity)是多余操作,不需要按数值分组,同时你后续修改单位的代码写错了列名,示例数据中单位对应的列是Type不是Unit

方案1:dplyr管道一步实现

library(dplyr)

df <- df %>%
  mutate(
    # 千克单位的数值除以1000转吨,其他单位保留原值
    Quantity = ifelse(Type == "Kilograms", Quantity / 1000, Quantity),
    # 把所有Kilograms标识改为Tonnes
    Type = ifelse(Type == "Kilograms", "Tonnes", Type)
  )

方案2:基础R语法实现

# 转换千克为吨
df$Quantity[df$Type == "Kilograms"] <- df$Quantity[df$Type == "Kilograms"] / 1000
# 统一单位标识
df$Type[df$Type == "Kilograms"] <- "Tonnes"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:36:04