4
我有三组标识符:“x”,“y”和“z”。我也有两个2列数据帧,每个数据帧将一组标识符映射到另一组标识符。transitively映射标识符
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))
这可以在下图中看到。请注意,每个箭头对应于数据框中的一行。
问: 我如何使用这两个映射(两个数据帧),使从x
到z
(如上图上的右侧显示)的映射 。 I 认为它是“传递映射”:x to y
和y to z
给出x to z
。 数据帧,我想是...
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.
你的图形看起来很漂亮。你是怎么做的? –
它是用Adobe Illustrator手动绘制的。我曾考虑过使用像Rgraphviz这样的东西,但是这个小型的一次性案例并不值得。 – kdauria