【发布时间】:2020-03-17 09:32:51
【问题描述】:
我正在尝试将两个矩阵相乘,并且很想使用 tidyverse。一个矩阵 (hhconsum) [9367x12] 看起来像这样
str(hhconsum)
Classes ‘data.table’ and 'data.frame': 9367 obs. of 12 variables:
$ C01: num 14.74 1.18 7.13 4.7 2.12 ...
$ C02: num 2.221 0 1.697 0.292 0 ...
另一个是这样的
> zmatrix
# A tibble: 58 x 13
s C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12
<chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 ADM 0 0 0.00211 0.00587 0.00210 0.000843 0.0865 0 0.171 0 0 0
我想乘以 hhconsum x zmatrix[,2:13] 的转置。关于如何在 tidyverse 中执行此操作的任何想法?
这里是一个相同格式的小例子
library(data.table)
library(tibble)
consumhh <- data.table(rbind(c(14.74482, 2.221329, 5.297450, 32.147875), c(1.17818, 0.000000, 0.753086, 6.755799)))
colnames(consumhh) <- c("C01","C02", "C03", "C04")
zmatrix <- tibble(s = c("ADM", "AGR"), C01 = c(0.2,0.1), c02 = c(0.3, 0.4), c03 = c(073, 0.1), c04 = c(0.15, 0.14))
我正在寻找的是使用 tidyverse 的 consumhh[2x4]*zmatrix[,2:5]' (zmatrix 的转置)。
谢谢 伦格
【问题讨论】:
-
我用一个例子更新了这个问题@Ronak:hhconsum x zmatrix [,2:13]' = [9367 x 12] x [12x58] 给出了一个维度为 [9367x58] 的矩阵