我需要按照4列(6-7和10-11)的顺序交换在塔4(等位基因)的变化的顺序交换,其中:调理列变化与其它四列
A/C should be C/A
G/C should be C/G
A/T should be T/A
G/A should be A/G
G/T should be T/G
T/C should be C/T
当第4列更改时,必须交换各行上的列5:6(Major_Allele_Frequency Minor_Allele_Frequency)和10:11(X.HomA:X.HomB)的顺序。 实施例:
library(data.table)
data <- "chr start tag alleles Number_of_Taxa Major_Allele_Frequency Minor_Allele_Frequency Number_Heterozygous X.Heterozygous X.HomA X.HomB
chr1 1 chr1-1 A 23 1 0 0 0.00 100.00 0.00
chr1 2 chr1-2 A/C 23 0.58696 0.41304 9 39.13 35.73 25.14
chr1 3 chr1-3 C/A 23 0.88636 0.11364 3 13.04 77.07 9.88
chr1 4 chr1-4 C/G 23 1 0 0 0.00 100.00 0.00
chr1 5 chr1-5 C/T 23 0.52174 0.47826 18 78.26 11.34 10.40
chr1 6 chr1-6 G 23 1 0 0 0.00 100.00 0.00
chr1 7 chr1-7 G/C 23 0.97727 0.02273 1 4.35 93.48 2.17
chr1 8 chr1-8 T 23 1 0 0 0.00 100.00 0.00
chr1 9 chr1-9 T/C 23 0.88636 0.11364 5 21.74 69.37 8.89
chr1 10 chr1-10 A/G 23 0.5 0.5 6 26.09 36.96 36.96
chr1 11 chr1-11 A/T 23 0.52174 0.47826 12 52.17 24.95 22.87
chr1 12 chr1-12 T/A 23 0.80435 0.19565 9 39.13 48.96 11.91
chr1 13 chr1-13 G/A 23 1 0 0 0.00 100.00 0.00
chr1 14 chr1-14 G/T 23 0.475 0.525 17 73.91 12.39 13.70
chr2 1 chr2-1 T/G 23 0.525 0.475 17 73.91 13.70 12.39
chr2 2 chr2-2 C 23 100 0 0 0 100 0"
data <- read.table(text=data, header=T)
Expected outcome:
expected <- "chr start tag alleles Number_of_Taxa Major_Allele_Frequency Minor_Allele_Frequency Number_Heterozygous X.Heterozygous X.HomA X.HomB
chr1 1 chr1-1 A 23 1 0 0 0.00 100.00 0.00
chr1 2 chr1-2 C/A 23 0.41304 0.58696 9 39.13 25.14 35.73
chr1 3 chr1-3 C/A 23 0.88636 0.11364 3 13.04 77.07 9.88
chr1 4 chr1-4 C/G 23 1 0 0 0.00 100.00 0.00
chr1 5 chr1-5 C/T 23 0.52174 0.47826 18 78.26 11.34 10.40
chr1 6 chr1-6 G 23 1 0 0 0.00 100.00 0.00
chr1 7 chr1-7 C/G 23 0.02273 0.97727 1 4.35 2.17 93.48
chr1 8 chr1-8 T 23 1 0 0 0.00 100.00 0.00
chr1 9 chr1-9 C/T 23 0.11364 0.88636 5 21.74 8.89 69.37
chr1 10 chr1-10 A/G 23 0.5 0.5 6 26.09 36.96 36.96
chr1 11 chr1-11 T/A 23 0.47826 0.52174 12 52.17 22.87 24.95
chr1 12 chr1-12 T/A 23 0.80435 0.19565 9 39.13 48.96 11.91
chr1 13 chr1-13 A/G 23 1 0 0 0.00 100.00 0.00
chr1 14 chr1-14 T/G 23 0.525 0.475 17 73.91 13.70 12.39
chr2 1 chr2-1 T/G 23 0.525 0.475 17 73.91 13.70 12.39
chr2 2 chr2-2 C 23 100 0 0 0 100 0"
expected <- read.table(text=expected, header=T)
我不明白为什么列事项的顺序。你的意思是说你想要列5和列6中的_data_,例如_swap_? –