按元素名称合并两个向量

时间:2014-03-12 19:56:07

标签: r list variable-assignment apply sapply

我有两个向量:

> str(A)
 Factor w/ 2 levels "neg","pos": 1 NA NA 1 1 2 NA NA 1 2 ...
> str(B)
 Factor w/ 2 levels "neg","pos": 1 1 1 1 2 1 2 1 1 2 ...
 - attr(*, "names")= chr [1:120] "2" "3" "7" "8" ...

我需要合并它们,这样来自B的值就会被放入A中由B中元素名称确定的位置。我试过

sapply(names(B), function(x) {
  assign ("m", x)
  A[x]  <- B["m"]   })

但结果很奇怪:

2.NA   3.NA   7.NA   8.NA  12.NA  14.NA   
<NA>   <NA>   <NA>   <NA>   <NA>   <NA>

我认为是某种类型的助手问题,但无法弄清楚。

1 个答案:

答案 0 :(得分:2)

A[as.numeric(names(B))] <- B