通过R脚本在Excel中编写MMult函数

8yoxcaq7  于 2022-12-20  发布在  其他
关注(0)|答案(1)|浏览(94)

我正在使用R创建一组矩阵,而不需要在Excel工作簿中发布。最终结果是矩阵(M)、向量(X)和向量(Y),其中M*X=Y。工作簿的“用户”将修改X向量以查看对Y的影响。
我正在使用openxlsx库从R脚本创建excel工作簿,但是我还没有找到一种方法来将计算Y向量的MMult公式写入结果工作簿。
有没有写MMult公式的方法?或者我还能用什么其他的策略?
希望你的解释不会太复杂。先谢了

5jdjgkvh

5jdjgkvh1#

    • 预先说明:**如果我没有理解错的话,那么 * 目前不支持 *。

什么有效

library(openxlsx)
wb <- createWorkbook()
addWorksheet(wb, "Sheet1")
writeData(wb = wb, sheet = "Sheet1", x = matrix(1:6, ncol = 2), startCol = 1)
writeData(wb = wb, sheet = "Sheet1", x = matrix(7:12, nrow = 2), startCol = 4)
writeFormula(wb = wb, sheet = "Sheet1", x = "MMULT(A2:B4, D2:F3)", startCol = 8, array = T)
saveWorkbook(wb = wb, file = "quux.xlsx")

如果我单击H1,编辑它(不执行任何操作),然后按Enter键,它将变为:

不完美,但至少让它工作不需要太大的努力。由于这似乎是让用户探索改变其中一个向量,所以说 "...点击$H$1,点击Fn-2(编辑),点击Enter" 可能不会太麻烦。
(有趣的旁注:它 * 不 * 在通常表示数组公式的公式周围加上{...}花括号。编辑字段并按Shift-Control-Enter确实会添加花括号,得到相同的数字结果。)

背景

添加公式的前提似乎是在2021年1月添加的,作为PR #131。不幸的是,PR的作者(自合并以来)在3个月后回复了这一点:它需要编辑单元以使其扩展到整个矩阵。
由于这个问题被合并了,而且自从那个PR以来已经做了一些工作,我怀疑要么是维护者忘记了对合并后的PR的评论,要么是他们对修复它不感兴趣。我建议你提出一个新的问题,也许ping #131中的另外两个评论者以获得他们的支持,评论等等。

相关问题