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

R Studio中如何将精神疾病分类数据转换为0/1二进制编码

精神疾病分类字段二值化实现方案

核心转换规则先明确对齐需求:

原编码0(无精神疾病)重编码为0;原编码1/2/3/4(心境障碍、行为障碍、其他类精神疾病、类障碍症状)统一重编码为1,代表存在患病迹象/确诊患病。

以下是不同常用数据处理工具的具体实现方式,你可以根据自己使用的工具选择:

Python(pandas处理场景,最常用)

假设你数据集中存储精神疾病分类的字段名为mental_class,转换代码如下:

import pandas as pd

# 读取mentallIllness数据集,替换成你实际的文件读取路径即可
# 如果数据集已经加载到内存,跳过这步直接做转换
mentallIllness = pd.read_csv("你的数据集本地路径.csv")

# 基础版转换:非0值统一转为1,0值保留为0,自动覆盖所有1-4的患病编码
mentallIllness["mental_binary"] = (mentallIllness["mental_class"] != 0).astype(int)

# 严谨版转换(适配有缺失值的场景):仅明确1-4的编码转1,0转0,缺失值保留为空
mentallIllness["mental_binary"] = mentallIllness["mental_class"].apply(
    lambda x: 1 if x in [1,2,3,4] else 0 if x == 0 else pd.NA
)

# 如果不需要保留原分类字段,把上面代码里的"mental_binary"换成原字段名"mental_class"即可覆盖原字段

转换完成后可以运行mentallIllness["mental_binary"].value_counts()做快速校验,确认输出只有0和1两个取值,且0的计数和原字段中0的记录数完全一致即可。

R语言处理场景

# 读取数据集,已加载可跳过
mentallIllness <- read.csv("你的数据集本地路径.csv")

# 基础版转换
mentallIllness$mental_binary <- ifelse(mentallIllness$mental_class == 0, 0, 1)

# 严谨版(适配缺失值)
mentallIllness$mental_binary <- ifelse(
  mentallIllness$mental_class %in% c(1,2,3,4), 1,
  ifelse(mentallIllness$mental_class == 0, 0, NA)
)

SPSS可视化操作场景

  • 打开mentallIllness数据集后,点击顶部菜单栏:转换 → 重新编码为不同变量(需要覆盖原字段就选「重新编码为相同变量」)
  • 将存储精神疾病分类的原字段选入右侧待转换变量框
  • 给输出的二值结果列命名(比如mental_binary),点击「更改」保存命名
  • 点击「旧值和新值」按钮配置映射规则:
    • 旧值选择「值」,输入0,对应新值输入0,点击「添加」
    • 旧值选择「范围」,输入最小值1、最大值4,对应新值输入1,点击「添加」
    • (可选)如果需要保留缺失值,旧值选「系统缺失」/「用户缺失」,对应新值选「系统缺失」,点击「添加」
  • 依次点击「继续」「确定」即可完成转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:09:30