首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >映射标识符

映射标识符
EN

Stack Overflow用户
提问于 2014-01-14 04:42:23
回答 1查看 71关注 0票数 4

我有三组标识符:"x“、"y”和"z“。我还有两个,2列数据帧,每个帧将一组标识符映射到另一组标识符。

代码语言:javascript
复制
x2y = data.frame( x = c("A","A","B","B","C","D","E","F"),
                  y = c(1,2,1,2,3,4,4,5) )
y2z = data.frame( y = c(1,1,2,3,4,4,5,5,5),
                  z = c(1,2,3,3,6,7,6,7,8) )

这可以在下图中可视化。注意,每个箭头对应于数据帧中的一行。

问题:如何使用这两个映射(两个数据帧)进行从xz的映射(显示在上图的右侧)。我认为这是一个“传递映射”:x to yy to z给出了x to z。我想要的数据框架是..。

代码语言:javascript
复制
x2z = data.frame( x = c("A","A","A","B","B","B","C","D","D","E","E","F","F","F"),
                  z = c(1,2,3,1,2,3,3,6,7,6,7,6,7,8) )

注释:我的数据帧通常是50,000行,所以高效的代码是非常重要的。当我用循环解决了这个问题时,需要几分钟才能运行。我唯一的要求是代码在R中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-14 04:58:17

你想要合并:

代码语言:javascript
复制
merge(x2y, y2z)[c('x','z')]
##    x z
## 1  A 1
## 2  A 2
## 3  B 1
## 4  B 2
## 5  A 3
## 6  B 3
## 7  C 3
## 8  D 6
## 9  D 7
## 10 E 6
## 11 E 7
## 12 F 6
## 13 F 7
## 14 F 8

在必要的地方,名字一致是有帮助的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21106235

复制
相关文章

相似问题

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