r - 简单的矢量操作

标签 r vector

我很确定这将是微不足道的 - 但对于我的生活来说,没有想到任何优雅的解决方案....

我有两个长度可能不同的向量:

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 

对于x1x2,试试

> 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/

相关文章:

r - 如何诱导 [r] 中两个逆累积概率分布之间的相关性?

linux - R库不可写

c++ - 错误 : Cannot convert 'const value_type' to 'char'

java - 如何解决这个错误: Android resource linking failed?

将第 n 列的列值替换为值与条件匹配的数据帧列表

r - `R CMD Sweave myfile.rnw` 的 knitr 等价物是多少?

c++ - 查找 vector 中小于阈值(复杂性)的所有数字

c++ - 两个 vector 的并集

c++ - 可能的范围问题 c++

r - 在 R 中对数据进行排序