Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用R中数据框中的另一个数据(如果是数字,则为字母)替换特定数据(字母或数字)_R - Fatal编程技术网

如何用R中数据框中的另一个数据(如果是数字,则为字母)替换特定数据(字母或数字)

如何用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=

我有一个像这样的数据框 标记位于行上,个体为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=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