Я бы хотел расширить то, что работает с , сравнить несколько векторов разной длины, сосчитать одинаковые элементы и распечатать те, которые одинаковы и различны .Я хотел бы написать цикл, чтобы я мог делать попарные сравнения десяти различных векторов, чтобы найти, что является общим для каждого сравнения, для всех возможных парных опций.Основная часть сравнения приведенного ниже псевдокода работает и из предыдущего поста, но это просто для сравнения A и B, и я хотел бы сравнить A с C, A с #D, B с C и т. Д...
vectors to be compared: A, B, C, D, E, F, G, H, I, J
set global variable for first vector to be compared
set global variable for second vector to be compared
#vetors -- these are subsets of my real vectors, which are more like 50 - 200 elements long
A <- c("866_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77", "3049_79", "3084_15", "3995_78", "4066_33", "4431_15")
B <- c("866_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77",
"3049_79", "3084_15", "3995_78")
C <- c("866_78", "1137_78", "1910_79", "1972_76", "2776_77",
"3049_79", "3084_14", "3995_78", "4066_36", "4431_19", "4885_78")
D <- c("866_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2773_77",
"3049_79", "3084_12", "3995_78", "4066_36", "4431_19", "4885_78")
E <- c("866_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77",
"3049_79", "3084_17", "4431_19", "4885_78")
F <- c("868_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77",
"3049_79", "3084_15", "3995_78", "4066_36", "4431_19", "4885_78")
G <- c("866_78", "1837_78", "1721_78", "1972_76", "2776_77",
"3049_79", "3084_15", "3995_78", "4066_36", "4431_19", "4885_78")
H <- c("866_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77",
"3049_79", "3084_15", "3995_78", "4066_36", "4431_19", "4885_78")
I <- c("866_78", "1137_28", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77",
"3995_78", "4066_36", "4431_19", "4885_78")
J <- c("866_78", "1137_78", "1721_78", "1745_79", "1910_79", "1972_76",
"2776_77",
"3049_79", "3084_18", "3995_78", "4066_36", "4431_19", "4885_78")
for(i ???)
{
compare.SNPs <- function(A, B) {
# consider only unique names
A.u <- unique(A)
B.u <- unique(B)
common.A.B <- intersect(A.u, B.u)
diff.A.B <- setdiff(A.u, B.u)
diff.B.A <- setdiff(B.u, A.u)
uncommon.A.B <- union(diff.A.B, diff.B.A)
cat(paste0("The sets have ", length(common.A.B), " SNPs in common:"))
print(common.A.B)
print(paste0("The sets have ", length(uncommon.A.B), " SNPs not in
common:"))
print(paste0("In the first set, but not in the second set:"))
print(diff.A.B)
print(paste0("Not in the first set, but in the second set:"))
print(diff.B.A)
}
compare.SNPs(A,B)
}
Будем весьма благодарны за любые указания, например, на пример кода.
С уважением, Элла