我有一個數據框有三個參考列ref,het和hom在每一行中,我想要替換列中的字母/基因型,其中G = C,A = T,AG = TC或基於參考列反之亦然。R列取代數據框中的其他列的字母表
structure(list(SNP = c("rs1", "rs2", "rs3", "rs4", "rs5", "rs6",
"rs7", "rs8", "rs9"), ref = c("GG", "AA", "AA", "GG", "GG", "GG",
"AA", "CC", "GG"), het = c("AG", "AG", "AG", "AG", "AG", "AG",
"AG", "AC", "AG"), hom = c("AA", "GG", "GG", "AA", "AA", "AA",
"GG", "AA", "AA"), A = c("TC", "TC", "CC", "AG", "TT", "TC",
"AA", "GG", "GG"), B = c("CC", "TT", "CC", "AG", "TT", "CC",
"AA", "TG", "GG"), C = c("CC", "CC", "CC", "GG", "CC", "TT",
"AA", "TG", "GG"), D = c("TT", "TC", "CC", "AG", "TT", "TT",
"AA", "GG", "AG"), E = c("CC", "TT", "CC", "AG", "TC", "TT",
"AA", "TG", "GG"), F = c("TC", "TT", "TC", "GG", "TC", "TC",
"AA", "GG", "GG"), G = c("TC", "TC", "CC", "AG", "TC", "TC",
"AA", "GG", "GG"), H = c("TC", "TC", "TC", "GG", "TC", "TC",
"AA", "TG", "GG")), .Names = c("SNP", "ref", "het", "hom", "A",
"B", "C", "D", "E", "F", "G", "H"), class = "data.frame", row.names =
c(NA,
-9L))
Input:
SNP ref het hom A B C D E F G H I
rs1 GG AG AA TC CC CC TT CC TC TC TC …
rs2 AA AG GG TC TT CC TC TT TT TC TC …
rs3 AA AG GG CC CC CC CC CC TC CC TC …
rs4 GG AG AA AG AG GG AG AG GG AG GG …
rs5 GG AG AA TT TT CC TT TC TC TC TC …
rs6 GG AG AA TC CC TT TT TT TC TC TC …
rs7 AA AG GG AA AA AA AA AA AA AA AA …
rs8 CC AC AA GG TG TG GG TG GG GG TG …
rs9 GG AG AA GG GG GG AG GG GG GG GG …
Desired Output:
SNP ref het hom A B C D E F G H I
rs1 GG AG AA AG GG GG AA GG AG AG AG …
rs2 AA AG GG AG AA GG AG AA AA AG AG …
rs3 AA AG GG GG GG GG GG GG AG GG AG …
rs4 GG AG AA AG AG GG AG AG GG AG GG …
rs5 GG AG AA AA AA GG AA AG AG AG AG …
rs6 GG AG AA AG GG AA AA AA AG AG AG …
rs7 AA AG GG AA AA AA AA AA AA AA AA …
rs8 CC AC AA AA AC AC CC AC CC CC AC …
rs9 GG AG AA GG GG GG AG GG GG GG GG …
我該如何寫一個函數來根據參考列來替換這些字母表?謝謝。
在此,是隻有'ref'列,它是參考 – akrun
感謝回覆,沒有唯一的裁判列,但他們三個人,包括裁判,HET和坎列 –
我想在你的dput列名V1,V2等,而應該是SNP,ref等。 – akrun