我在使用外部功能时遇到了困难。我已经看了几个线程,但还没有找到解决方案。
我有一个矩阵,价格,有以下信息:
25 26
我使用外部函数如下将这些数字相乘:
a = outer(prices[1,1:2],prices[1,1:2],FUN ="*")
这给了我以下错误:
Error in as.vector(X) %*% t(as.vector(Y)) :
requires numeric/complex matrix/vector arguments
但是,如果我做同样的事情,但直接使用数字,它可以按照我的意愿运作:
a = outer(c(25,26),c(25,26),FUN ="*")
并返回带有产品的2x2矩阵。
非常感谢任何帮助。
答案 0 :(得分:3)
您的价格矩阵显然是data.frame
而不是matrix
。您可以更改:
prices <- as.matrix(prices)
a <- outer(prices[1,1:2],prices[1,1:2],FUN ="*")
或者您可以在使用时转换为数字:
a <- outer(as.numeric(prices[1,1:2]),as.numeric(prices[1,1:2]),FUN ="*")
答案 1 :(得分:0)
prices <- matrix(c(25,26), nrow=1)
a = outer(prices[1,1:2],prices[1,1:2],FUN ="*")
# [,1] [,2]
#[1,] 625 650
#[2,] 650 676