首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过匹配dataframe `y`中的第1列并插入第3列,重命名矩阵`x`的行名/列名

通过匹配dataframe `y`中的第1列并插入第3列,重命名矩阵`x`的行名/列名
EN

Stack Overflow用户
提问于 2019-07-26 14:27:00
回答 1查看 100关注 0票数 0

我有两个数据帧。一个是具有列和行标题的矩阵,另一个是矩阵的元数据。矩阵的当前行名和列名是登录号,但我在数据框架中还有其他名称,我将在其中使用这些名称作为行/列名。问题是它们的顺序不同。我希望在元数据中找到与矩阵中的行/列匹配的行,并将矩阵的行/列名更改为与第二个数据帧中的不同列匹配的名称。

矩阵:

代码语言:javascript
复制
             "XP01020938" "XP3943847" "XP39583574" "XP39384739"
"XP01020938"      1           0.5         0.25         0.1
"XP3943847"      0.5           1          0.5          0.25
"XP39583574"     0.25         0.5          1           0.1
"XP39384739"     0.1          0.25        0.1           1

元数据:

代码语言:javascript
复制
Accession Name
XP3943847 Tiger
XP39583574 Elephant
XP39384739 Monkey
XP01020938 Horse

所需:

代码语言:javascript
复制
          "Horse" "Tiger" "Elephant" "Monkey"
"Horse"      1      0.5      0.25       0.1
"Tiger"      0.5     1       0.5        0.25
"Elephant"   0.25   0.5       1         0.1
"Monkey"     0.1    0.25     0.1         1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-26 14:32:16

使用match做这样的事情?

代码语言:javascript
复制
colnames(mat) <- metadata$Name[match(colnames(mat), metadata$Accession)]
rownames(mat) <- metadata$Name[match(rownames(mat), metadata$Accession)]

mat
#         Horse Tiger Elephant Monkey
#Horse     1.00  0.50     0.25    0.1
#Tiger     0.50  1.00     0.25    0.1
#Elephant  0.25  0.50     1.00    0.1
#Monkey    0.10  0.25     0.50    1.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57214268

复制
相关文章

相似问题

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