Я пытаюсь объединить список матриц по первому столбцу следующим образом:
a x x
a q q
b y y
c z z
d w w x x x x
e v v q q q q
e r r y y y y
----------> z z z z
a x x w w w w
a q q v v v v
b y y r r r r
c z z
d w w
e v v
e r r
Я хотел бы использовать первый столбец для объединения матриц, но он не обязательно должен быть вПолученная матрица.Меня бросает вызов тот факт, что в первом ряду есть несколько экземпляров одного и того же значения (a
и e
)
Я искал вокруг, но не смог найти ни одного решения, которое учитываетдля тех же значений в столбце, с которым соединяются матрицы.С моим текущим кодом (показанным ниже) я получаю что-то вроде:
x x x x
q q q q
x x x x
q q q q
x x x x
q q q q
y y y y
z z z z
w w w w
v v v v
r r r r
v v v v
r r r r
v v v v
r r r r
Я не могу понять, почему появляются повторяющиеся строки, но это как-то связано с длиной list
, поэтому япри условии, что это происходит в функции merge
.
mergeM <- function(list){ # list is a list of matrices
len = length(list)
mat = merge(list[[1]],list[[2]],by.x = "V1", by.y = "V1", all = TRUE)
if(len >2){
for(i in 3:len){
mat = merge(mat,list[[i]],by.x = "V1", by.y = "V1", all = TRUE)
}
}
mat = mat[,-1]
return(mat)
}# end function