1
讓我們做一個虛擬數據第一乘以兩個不同的dataframes只對完全匹配的行和列名
a=data.frame(average=c(5,6), row.names=c("Q", "R"))
> a
average
Q 5
R 6
b=data.frame(c(5,5,7), c(8,9,10), c(11,12,14))
> colnames(b)<-c("Q","QQ","R")
> b
Q QQ R
1 5 8 11
2 5 9 12
3 7 10 14
我想乘「B」是完全的「A」的行名匹配的列(在這裏,Q和R完全匹配)。但是,當我做一個簡單的循環,它給
n = row.names(a)
> lapply(1:length(n), function(i)
+ a[grep(n[i], row.names(a)),]*b[,grep(n[i], colnames(b))])
[[1]]
Q QQ
1 25 40
2 25 45
3 35 50
[[2]]
[1] 66 72 84
,這意味着它也因爲Q和QQ有一個共同的信乘以QQ!我如何獲得以下內容?
[[1]]
[1] 25 25 35
[[2]]
[1] 66 72 84