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

如何在R语言中统一数据框中水样化学量的单位(mg转μg)

解决水样化学量单位统一转换问题

你的核心问题是:之前的代码仅对筛选出的mg/l单位子集做了计算,但没把修改后的值赋值回原数据框,所以原数据没有变化。下面给两种简单直接的解决方法:

基础R原生实现

假设数值列名为value,单位列名为units,直接通过索引赋值完成转换:

# 把所有mg/l单位的数值转成微克(乘以1000)
df$value[df$units == 'mg/l'] <- df$value[df$units == 'mg/l'] * 1000

# 删除单位列
df <- df[, !names(df) %in% 'units']
# 也可以用subset更直观
# df <- subset(df, select = -units)

dplyr tidyverse风格实现(更简洁)

如果平时用tidyverse工具链,用mutate+ifelse的写法更清晰:

library(dplyr)

df <- df %>%
  # 条件转换单位:mg/l转微克,其他保持不变
  mutate(value = ifelse(units == 'mg/l', value * 1000, value)) %>%
  # 移除单位列
  select(-units)

如果你的数值列或单位列名称不一样,把代码里的value和units换成实际列名就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:15:32