r - 错误: requires numeric/complex matrix/vector arguments when using matrix times vector multiplication

标签 r matrix vector error-handling matrix-multiplication

这是我的代码:

indices <- as.matrix(sapply(cpi_calc[2:nrow(cpi_calc), 1:ncol(cpi_calc)], as.numeric))  
weigths <- as.matrix(sapply(cpi_calc[1, 1:ncol(cpi_calc)], as.numeric))
CPI77_82 <- indices %*% weights

我想使用索引矩阵和权重 vector 来计算CPI。矩阵和 vector 在变量窗口中均显示为num。我不知道为什么矩阵乘法不起作用。
Error in indices %*% weights : 
  requires numeric/complex matrix/vector arguments

而且我知道还有很多其他类似的问题,但是我的代码对我来说似乎还不错,我尝试了所有其他类似问题的答案。请帮忙! :)

编辑:
 > cpi_calc[2:6, 1:6]
# A tibble: 5 x 6
    X__1   X__2   X__3   X__4   X__5   X__6
   <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
1 100.00 100.00 100.00 100.00 100.00 100.00
2  99.99 100.00 100.07 100.01 100.80 101.59
3  99.52  99.58  99.94 100.01 101.03 101.38
4  99.46  99.44  99.85 100.01 101.03 101.03
5  99.13  99.37  99.79  99.97 101.00 101.82

> t(cpi_calc[1, 1:6])
      [,1]
X__1 0.358
X__2 0.359
X__3 0.060
X__4 0.419
X__5 0.191
X__6 0.296

最佳答案

这很好。您的cpi_calc表中必须包含一些NA。试试na.omit(cpi_calc)

cpi_calc <- read.table(text="0.358  0.359   0.06    0.419   0.191   0.296
100 100 100 100 100 100
99.99   100 100.07  100.01  100.8   101.59
99.52   99.58   99.94   100.01  101.03  101.38
99.46   99.44   99.85   100.01  101.03  101.03
99.13   99.37   99.79   99.97   101 101.82",header=FALSE)

as.matrix(cpi_calc[2:6, 1:6]) %*% t(cpi_calc[1, 1:6])
         1
2 168.3000
3 168.9282
4 168.5832
5 168.4024
6 168.4669

关于r - 错误: requires numeric/complex matrix/vector arguments when using matrix times vector multiplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47474818/

相关文章:

c++ - 复制模板化 vector

r - 在 R Studio 中保存

r - 如何随机采样具有唯一列值的数据帧行

algorithm - 矩阵的就地转置

c++ - 如何在不使用 C++ OpenGL SuperBible 着色器的情况下使用变换矩阵?

objective-c - 我在 Objective-C 中的矩阵方面遇到问题

r - 对多个dplyr过滤条件使用整洁的评估

r - 如何使用 rvest 获取 html_table 中的链接?

c++ - 如何将 vector<string> 和 push_back() 格式化为其他 vector ?

C++ 无法访问由 vector 的迭代器返回的类中的公共(public)属性