如何用R中数据框中的另一个数据(如果是数字,则为字母)替换特定数据(字母或数字)
我有一个像这样的数据框 标记位于行上,个体为G1:G5如何用R中数据框中的另一个数据(如果是数字,则为字母)替换特定数据(字母或数字),r,R,我有一个像这样的数据框 标记位于行上,个体为G1:G5 Marker G1 G2 G3 G4 G5 P39 GG GG AA AA AA P40 GG AA AA AA TT P41 AA AA CC TT AA P23 TT TT AA AA TT P35 AA AA AA CC AA 我想将此数据帧中的唯一调用替换为 AA=1, TT=2, GG=3, CC=
Marker G1 G2 G3 G4 G5
P39 GG GG AA AA AA
P40 GG AA AA AA TT
P41 AA AA CC TT AA
P23 TT TT AA AA TT
P35 AA AA AA CC AA
我想将此数据帧中的唯一调用替换为
AA=1, TT=2, GG=3, CC=4
并希望将数据帧保存为CSV
有人能解决这个问题吗
非常感谢我可能误解了你想要什么;是这个吗
dt <- data.frame(Marker = c('P39', 'P40', 'P41', 'P2370', 'P350'), G1 = c('GG', 'GG', 'AA', 'TT', 'AA'),
G2 = c('GG', 'AA', 'AA', 'TT', 'AA'), G3 = c('AA', 'AA', 'CC', 'AA', 'AA'),
G4 = c('AA', 'AA', 'TT', 'AA', 'CC'), G5 = c('AA', 'TT', 'AA', 'TT', 'AA'), stringsAsFactors = FALSE)
dt[dt == 'AA'] <- 1
dt[dt == 'TT'] <- 2
dt[dt == 'GG'] <- 3
dt[dt == 'CC'] <- 4
write.csv(dt, 'filename.csv')
dt这将完成以下工作:
library(data.table)
dt <- setDT(dt)[ ,ifelse(dt == 'AA',1,
ifelse(dt == 'TT',2,
ifelse(dt == 'GG',3,4)))]
fwrite(dt, 'filename.csv')
库(data.table)
非常感谢大卫,你所理解的是正确的。我的问题是,对于标记,我有37000行,我需要一个命令来执行记录AA=1、TT=2、GG=3和CC=4,需要应用于整个集合。例如37000个标记和500个个体作为列。非常感谢Rafael,在我的数据中,我有37000行(标记)用于500个个体(列)。我通过加载package data.table尝试了您的代码,并出现以下错误x1@Ray,您尝试的代码与我在回答中编写的代码不同。感谢Rafael,我尝试了编码,既然我希望CC代码被4替换,您修改的代码会如下所示吗?dt