2016-11-15 41 views
-3

我有兩個命名向量。有些元素對兩者都是通用的。我想與它們在載體2值來代替在第一向量的所有元素,如果它是存在於載體2 實施例:替換R中向量中的通用元素

Vector1: 
A1 A2 A3 A4 A5 
0 0 0 0 0 
Vector2: 
A2 A5 
3 5 

Output Expected: 
A1 A2 A3 A4 A5 
0 3 0 0 5 
+1

請顯示一些可重現的示例和預期輸出。使用'%in%'檢查 – akrun

+0

添加詳細信息 –

+0

嘗試'v1 [names(v1)%in%names(v2)] < - v2' – akrun

回答

0

在註釋的溶液並不一概而論,僅當載體2是完全工作按照名稱嵌套在矢量1中(不存在出現在2中而不是1中的元素),並且它們的順序相同。更廣義的解決方案可能是這樣的(我正在改變向量值和訂單):

v1 <- c(A4 = 0, A2 = 0, A5 = 0, A1 = 3, A6 = 5) 
v2 <- c(A5 = 3, A7 = 1, A2 = 4) 

repvecs <- function(a = v1, b = v2) { 
    commons <- names(a)[names(a) %in% names(b)] 
    a[commons] <- b[commons] 
    return(a) 
} 
相關問題