矩阵乘法不起作用

时间:2017-09-28 19:42:39

标签: r shiny

我遇到矩阵乘法问题。 LMatrix的尺寸为381×381,而directEffects1的尺寸为381x 1.两者都是数据帧。当我打字

  writeData(wb2, sheet=1, as.matrix(LMatrix)%*%as.matrix(directEffects1)[,1], startCol = 9,startRow = 1,colNames = T, rowNames = FALSE)

我得到1行,381列向量,只有1和0,而不是矩阵乘法的乘积。另外,我需要写as.matrix(directEffects1)[,1]而不是as.matrix(directEffects1),否则我会收到消息:

 %*%: non-conformable arguments

关于我应该做什么的任何建议?我想要两个变量的381x1产品。

1 个答案:

答案 0 :(得分:0)

我不确定你哪里出错了。我使用随机生成的数据编写了一个示例并得到了明智的答案:

library(openxlsx)
library(Matrix)

# Using rnorm and runif to generate random data
LMatrix = as.data.frame(matrix(rnorm(381*381), nrow=381, ncol=381))
directEffects1 = as.data.frame(matrix(runif(381), nrow=381, ncol=1))
wb2 <- createWorkbook()
addWorksheet(wb2, "Matrix")

writeData(wb2, sheet=1, 
          as.matrix(LMatrix)%*%as.matrix(directEffects1)[,1], 
          startCol = 9,
          startRow = 1,
          colNames = T, 
          rowNames = FALSE)

saveWorkbook(wb2, file = 'C:/test.xlsx')

其中提供了381行x 1列Excel文件。也许这段代码(实际上并不是一个真正的答案)可以让你开始弄清楚你的代码或数据的哪一部分搞砸了你?