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

如何在R语言中为数据框添加汞含量分级的因子列?

给鱼类汞含量添加分级列的实现方法

Excel 操作步骤

  • 假设你的汞含量数据在A列(从A2开始是有效数据),在B2单元格输入以下公式:
    =IF(A2<0.1,"low",IF(A2<=0.3,"medium","high"))
  • 逻辑说明:先判断数值是否小于0.1,符合则标记为"low";否则判断是否≤0.3(此时范围自动落在0.1到0.3之间),标记为"medium";剩下的数值都>0.3,标记为"high"。
  • 输入完成后,鼠标拖动B2单元格右下角的填充柄,下拉到所有数据行即可批量生成等级列。

Python(Pandas)实现

方法1:自定义函数+apply

适合小数据集,逻辑直观:

import pandas as pd

# 加载数据集(替换成你的文件路径和格式)
df = pd.read_csv("fish_mercury_data.csv")

# 定义分级函数
def get_mercury_level(val):
    if val < 0.1:
        return "low"
    elif val <= 0.3:
        return "medium"
    else:
        return "high"

# 生成新列(替换"汞含量"为你实际的列名)
df["汞含量等级"] = df["汞含量"].apply(get_mercury_level)

方法2:cut函数(高效适合大数据)

用Pandas内置的区间划分函数,速度更快:

import pandas as pd

df = pd.read_csv("fish_mercury_data.csv")

# 定义区间和对应标签
bins = [-float("inf"), 0.1, 0.3, float("inf")]
labels = ["low", "medium", "high"]

# 生成新列,include_lowest确保0.1被归入medium区间
df["汞含量等级"] = pd.cut(df["汞含量"], bins=bins, labels=labels, include_lowest=True)

R语言实现

方法1:嵌套ifelse

# 加载数据集
df <- read.csv("fish_mercury_data.csv")

# 生成分级列(替换"汞含量"为实际列名)
df$汞含量等级 <- ifelse(df$汞含量 < 0.1, "low",
                       ifelse(df$汞含量 <= 0.3, "medium", "high"))

方法2:case_when(更易读)

需要先加载dplyr包:

library(dplyr)

df <- read.csv("fish_mercury_data.csv") %>%
  mutate(汞含量等级 = case_when(
    汞含量 < 0.1 ~ "low",
    汞含量 <= 0.3 ~ "medium",
    TRUE ~ "high"
  ))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:27:12