我很确定这将是微不足道的 - 但对于我的生活来说,没有想到任何优雅的解决方案....
我有两个长度可能不同的向量:
a <- c(1,2,3,4,5)
names(a)<-c("a","b","c","d","e")
b <- c(10,20,30)
names(b)<-c("a","b","d")
我想生成 x 这样:
x
a b c d e
10 20 NA 30 NA
对于上下文 - 这是一个比较图,我在其中比较不同的模型,其中一些模型共享一些参数 - 我想确保等价的值排列起来。
虽然在以下情况下会更多地考虑它:
a <- c(1,2,3,4,5)
names(a)<-c("a","b","c","d","e")
b <- c(10,20,30,1000)
names(b)<-c("a","b","d","x")
我需要返回 2 个新向量:
x1
a b c d e x
1 2 3 4 5 NA
和
x2
a b c d e x
10 20 NA 30 NA 1000
因此给我 2 个系列来并行绘制 - 我希望至少其中一些是有意义的。
如果有人对我如何完成上述工作有任何建议,我们将不胜感激他们的帮助。
感谢阅读
D
最佳答案
对于x
,试试
> setNames(b[names(a)], names(a))
a b c d e
10 20 NA 30 NA
对于x1
和x2
,试试
> allnames <- union(names(a), names(b))
> setNames(a[allnames], allnames)
a b c d e x
1 2 3 4 5 NA
> setNames(b[allnames], allnames)
a b c d e x
10 20 NA 30 NA 1000
关于r - 简单的矢量操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12584764/