首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用普通列名连接字符矩阵

用普通列名连接字符矩阵
EN

Stack Overflow用户
提问于 2022-05-04 20:18:53
回答 1查看 80关注 0票数 0

我一直在尝试做一些我知道是如此简单的事情!我已经阅读并尝试了我所能找到的一切,但仍然在为这个非常简单的任务而奋斗。

我有两个字符矩阵,它们有一些匹配的列,我需要组合它们,而不丢失一个矩阵中不匹配的列。我尝试过合并、左连接和交叉,但仍然没有达到预期的结果。

以下是矩阵1:

代码语言:javascript
复制
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有一些相同的列名和一些不同的列名。如果列匹配,我需要复制/粘贴从矩阵1到矩阵2的值,同时保持矩阵2中的所有列。

代码语言:javascript
复制
mat2 <- matrix(nrow =1, ncol = 892, data = "_")
colnames(m2) <- colnames(aln)

我的输出需要如下所示:

代码语言:javascript
复制
> mat3 

G0242  G0243   C0001   C0002   C0003   C0004   C0005
 "_"    "_"   "5'UTR" "5'UTR" "5'UTR" "5'UTR" "5'UTR"

我试图离开join,结果出错了。

代码语言:javascript
复制
"Error in UseMethod("left_join") : no applicable method for 'left_join' applied to an object of class "c('matrix', 'array', 'character')"

而且我似乎无法只分配我想要的值:

代码语言:javascript
复制
m2[,"C0001":"C0909"] <- "5' UTR"
Error in "C0001":"C0909" : NA/NaN argument
In addition: Warning messages:

我尝试了很多不同的合并、绑定和重组,但是没有什么能给我正确的结果。

找个人,精神正常点,拜托。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-04 21:00:55

也许是这样的:

代码语言:javascript
复制
for(col in intersect(colnames(mat1), colnames(mat2))) {
  mat2[,col] <- mat1[,col]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72119027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档