【发布时间】:2020-08-31 19:45:59
【问题描述】:
我现在正在处理遗传数据,并试图将遗传数据(分类数据)编码为数字 0、1、2。简化的数据集如下所示。
患者 ID 基因 1 基因 2 基因 3
-
C/G A/G G/A -
C/C A/A G/G -
C/C A/A A/A -
G/G G/G G/G
每列总是有三个级别,格式为 A/A、A/B 和 B/B。但是,不能确定 A 或 B 是每列 N 中的主要字母。例如,在 Gene1 列中,C 比 G 多,表示 C 是大写字母。我希望 C/C(两个大写字母)编码为 0,G/G(两个小写字母)编码为 2,C/G 或 G/C(一个大写字母 + 一个小写字母)编码为 1。同样,在 Gene3 列中,G 是最常见的字母,因此,我希望将 G/G 编码为 0,并将 A/A 编码为 2。像 A/B 这样具有两个不同字母的列始终编码为 1。
我希望输出清理后的数据集如下所示:
患者 ID 基因 1 基因 2 基因 3
-
1 1 1 -
0 0 0 -
0 0 2 -
2 2 0
我有超过 750 列这样的列,因此无法逐列手动对其进行编码。无论如何,我可以同时对超过 750 列这样的遗传数据进行编码。我已经在这一步停留了将近两天,感谢您提供任何帮助。 python和r代码都可以。
谢谢!
【问题讨论】:
标签: python r data-science data-cleaning