r - R - 在公共列上合并矩阵
问题描述
我正在尝试将矩阵列表全部合并到第一列,如下所示:
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
解决方案
推荐阅读
- python - 如何将一列拆分为不同大小的不同部分?
- javascript - MEAN-如何找到数组的长度?
- google-cloud-run - 使用云运行启动spring boot时如何解决超时
- laravel - 最佳实践标准 - Laravel Eloquent/Model 的 SQL 查询
- sql - 将数据库列转换为 SQL 查询
- identityserver4 - 保护 blazor webassembly 托管应用程序
- python - 创建年、月、日文件夹 Python
- jmeter - 使用 Jmeter JSR233 后处理器写入 CSV 第一行
- r - 通过在 R 中堆叠类似变量来重构数据集
- python - 数据框字符串类型不能使用替换方法