2014-07-17 105 views
1

矩陣的名稱如何做矩陣或矢量乘法我有對象(第一行是名稱):基於R中

26/03/2012 02/04/2012 09/04/2012 16/04/2012 23/04/2012 30/04/2012 07/05/2012 14/05/2012 
10   20   50   20   10   0   3   15 

對象b(第一行是名稱):

16/04/2012 23/04/2012 30/04/2012 07/05/2012 
6   20   8   2 

我願做一個簡單的乘法,但基於在名稱匹配 即我想輸出是

16/04/2012 23/04/2012 30/04/2012 07/05/2012 
120   200   0   6 

這樣做的最好方法是什麼?某些名稱匹配的條件會很好。由於

回答

2

的方法之一是發現在這兩個載體中顯示的名稱,並使用這些通用名稱來選擇的每個向量中的元素:

v1 <-c(10, 20, 50, 20, 10, 0, 3, 15) 
names(v1) <- c("26/03/2012", "02/04/2012", "09/04/2012", "16/04/2012", "23/04/2012", 
"30/04/2012", "07/05/2012", "14/05/2012") 
v2 <- c(6, 20, 8, 2) 
names(v2) <- c("16/04/2012", "23/04/2012", "30/04/2012", "07/05/2012") 
id <- intersect(names(v1), names(v2)) 
v1[id] * v2[id] 
# 16/04/2012 23/04/2012 30/04/2012 07/05/2012 
#  120  200   0   6