使用r从一列替换到另一列

使用r从一列替换到另一列,r,R,我不熟悉R,但有一个非常大的文件要处理。 我在R中有一个表,如下所示: CHROM POS ID REF ALT Sample1 Sample2 20 1 rs1000000 G A 1/1 0/0 20 2 rs1000002 A G 1/1 0/1 20 3 rs1000004 A G 0/0 0/0 我想查看第6列Sample1,并用第4列R

我不熟悉
R
,但有一个非常大的文件要处理。 我在
R
中有一个表,如下所示:

CHROM   POS         ID  REF ALT Sample1 Sample2
   20     1  rs1000000    G   A     1/1     0/0
   20     2  rs1000002    A   G     1/1     0/1
   20     3  rs1000004    A   G     0/0     0/0
我想查看第6列
Sample1
,并用第4列
REF
中相应行中的字母替换“0”。我想删除斜杠,并通过将第6列
Sample1
中的斜杠替换为第5列
ALT
中的字母来重复此操作。我想对表中的每一行都这样做。这是预期的结果:

CHROM   POS         ID  REF ALT Sample1 Sample2
   20     1  rs1000000    G   A      AA     GG
   20     2  rs1000002    A   G      GG     AG
   20     3  rs1000004    A   G      AA     AA

谢谢。

您需要首先拆分
/
上的
Sample1
列。检查分割值是否为
0
,然后用
REF
替换该值,否则
ALT
列的内容。最后连接这些替换的值以获得最终结果

Sample2
重复相同的过程

假设-
Sample1
&
Sample2
始终只有
0
1

库(dplyr)
df%>%
行()
突变(Sample1=粘贴(如果其他(strsplit(Sample1,split='/'))[[1]]==0,REF,ALT),collapse=“”),
Sample2=粘贴(如果其他(strsplit(Sample2,split='/')[[1]]==0,REF,ALT),collapse=”“)

> df1
  CHROM   POS ID        REF   ALT   Sample1 Sample2
1    20     1 rs1000000 G     A     AA      GG     
2    20     2 rs1000002 A     G     GG      AG     
3    20     3 rs1000004 A     G     AA      AA 

样本数据:

df <- structure(list(CHROM = c(20L, 20L, 20L), POS = 1:3, ID = c("rs1000000", 
"rs1000002", "rs1000004"), REF = c("G", "A", "A"), ALT = c("A", 
"G", "G"), Sample1 = c("1/1", "1/1", "0/0"), Sample2 = c("0/0", 
"0/1", "0/0")), .Names = c("CHROM", "POS", "ID", "REF", "ALT", 
"Sample1", "Sample2"), class = "data.frame", row.names = c(NA, 
-3L))

#  CHROM POS        ID REF ALT Sample1 Sample2
#1    20   1 rs1000000   G   A     1/1     0/0
#2    20   2 rs1000002   A   G     1/1     0/1
#3    20   3 rs1000004   A   G     0/0     0/0
df如果它帮助您解决了问题,那么您可能会想这样做,这样就可以认为问题已经解决了。