【发布时间】:2015-09-30 21:02:47
【问题描述】:
我正在尝试将 AA、GG、GA 等成对的字母(基因型)转换为数值。例如,我想要 AA = 0、GG = 1、AG = 2、CC = 3、TT = 4 等。我的数据样本如下所示:
S1 S2 S3
AA CC AA
AA GG TT
AA CC GG
AA AG AA
我一直在尝试使用 dplyr 包中的 mutate 函数,但我有点卡住了。
我一直在运行的给我错误的代码是:
DF1 <- DF %>% mutate_each(funs(chartr("AA", "0", .)))
chartr("AA", "0", c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 1L)) 中的错误: “旧”比“新”长
我尝试将代码编辑为:
DF1 <- DF %>% mutate_each(funs(chartr("AA", "00", .)))
这给了我下面的结果,但这仍然不是我想要的。有人可以帮我解决一些如何处理它的想法吗?
S1 S2 S3
1 00 CC 00
2 00 GG TT
3 00 CC GG
4 00 0G 00
我想要的结果是:
S1 S2 S3
1 0 3 0
2 0 1 4
3 0 3 1
4 0 1 0
【问题讨论】:
-
我认为您想要的结果有错误,因为
S2的第 4 行将是AG==2vs1。