2

我在使用外部函数时遇到了困难。我已经查看了几个线程,但无法找到解决方案。

我有一个矩阵,价格,包含以下信息:
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 矩阵。

任何帮助将不胜感激。

4

2 回答 2

3

您的价格矩阵显然是 adata.frame而不是 a 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 ="*")
于 2013-10-04T08:41:09.253 回答
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
于 2013-10-04T08:40:05.043 回答