按常用列名连接字符矩阵
Join character matrices by common column names
我一直在努力做一些我知道很简单的事情!我已经阅读并尝试了所有我能找到的东西,但仍在为这个非常简单的任务而苦苦挣扎。
我有两个具有一些匹配列的字符矩阵,我需要将它们组合起来而不丢失 1 个矩阵中不匹配的列。我尝试了合并、左连接和相交,但仍然没有得到想要的结果。
这是矩阵 1:
mat1 <- matrix( nrow = 1, ncol = 6077, data = "_" )
colnames(mat1)<- sprintf( "C%04d", 1:6077)
mat1[,1:909] <- "5' UTR"
mat1[,910:1923] <- "ORF1"
mat1[,1990:5814] <- "ORF2"
mat1[,49:420] <- "CPG"
mat1[,5815:6077] <- "3' UTR"
mat1[,211:225] <- "RXRA::VDR"
矩阵 1 中的列名从 C0001 到 C6077,矩阵 2 的列名有些相同,有些不同。如果列匹配,我需要 copy/paste 从矩阵 1 到矩阵 2 的值,同时保留矩阵 2 中的所有列。
mat2 <- matrix(nrow =1, ncol = 892, data = "_")
colnames(m2) <- colnames(aln)
我的输出需要类似于:
> mat3
G0242 G0243 C0001 C0002 C0003 C0004 C0005
"_" "_" "5'UTR" "5'UTR" "5'UTR" "5'UTR" "5'UTR"
我尝试左加入但出现错误
"Error in UseMethod("left_join") : no applicable method for 'left_join' applied to an object of class "c('matrix', 'array', 'character')"
而且我似乎无法只分配我想要的值:
m2[,"C0001":"C0909"] <- "5' UTR"
Error in "C0001":"C0909" : NA/NaN argument
In addition: Warning messages:
而且我已经尝试了多种合并、cbind 和 rbind,但没有一个给我正确的结果。
有人,请理智一些。
也许是这样的:
for(col in intersect(colnames(mat1), colnames(mat2))) {
mat2[,col] <- mat1[,col]
}
我一直在努力做一些我知道很简单的事情!我已经阅读并尝试了所有我能找到的东西,但仍在为这个非常简单的任务而苦苦挣扎。
我有两个具有一些匹配列的字符矩阵,我需要将它们组合起来而不丢失 1 个矩阵中不匹配的列。我尝试了合并、左连接和相交,但仍然没有得到想要的结果。
这是矩阵 1:
mat1 <- matrix( nrow = 1, ncol = 6077, data = "_" )
colnames(mat1)<- sprintf( "C%04d", 1:6077)
mat1[,1:909] <- "5' UTR"
mat1[,910:1923] <- "ORF1"
mat1[,1990:5814] <- "ORF2"
mat1[,49:420] <- "CPG"
mat1[,5815:6077] <- "3' UTR"
mat1[,211:225] <- "RXRA::VDR"
矩阵 1 中的列名从 C0001 到 C6077,矩阵 2 的列名有些相同,有些不同。如果列匹配,我需要 copy/paste 从矩阵 1 到矩阵 2 的值,同时保留矩阵 2 中的所有列。
mat2 <- matrix(nrow =1, ncol = 892, data = "_")
colnames(m2) <- colnames(aln)
我的输出需要类似于:
> mat3
G0242 G0243 C0001 C0002 C0003 C0004 C0005
"_" "_" "5'UTR" "5'UTR" "5'UTR" "5'UTR" "5'UTR"
我尝试左加入但出现错误
"Error in UseMethod("left_join") : no applicable method for 'left_join' applied to an object of class "c('matrix', 'array', 'character')"
而且我似乎无法只分配我想要的值:
m2[,"C0001":"C0909"] <- "5' UTR"
Error in "C0001":"C0909" : NA/NaN argument
In addition: Warning messages:
而且我已经尝试了多种合并、cbind 和 rbind,但没有一个给我正确的结果。
有人,请理智一些。
也许是这样的:
for(col in intersect(colnames(mat1), colnames(mat2))) {
mat2[,col] <- mat1[,col]
}