使用外部功能

时间:2013-10-04 08:22:31

标签: r outer-join

我在使用外部功能时遇到了困难。我已经看了几个线程,但还没有找到解决方案。

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

非常感谢任何帮助。

2 个答案:

答案 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