交叉产品矩阵意外地充满了NA

时间:2014-12-11 02:33:50

标签: r matrix

所以我从CSV中获取了一些信息,将其存储为矩阵,并试图在结果上计算以下操作,但它给了我一个2x2的NA数组。没有在这里看到问题。

data <- read.csv('qog.csv', sep=';')
X <- matrix( log( data$wdi_gnipc ) )
X <- cbind(X, data$ciri_empinx_new)
t(X) %*% X

当我看到X和t(X)时,它们看起来像我期望的那样,所以我将2xn矩阵与nx2矩阵(n是像193这样的大数字)进行矩阵乘法,因此矩阵乘积应该是明确定义并给出有意义的2x2答案。

任何可能出错的想法?​​

注意:当我尝试

a&lt; - rbind(c(1,2),c(3,4)) t(a)%*%a

它给出了期望的结果。不确定这与我正在对数据做什么之间的重要区别。

1 个答案:

答案 0 :(得分:5)

让我们回答一下。要使用NA填充交叉产品,NA内的每列必须至少有一个X。您可以通过运行

找到每列NA的数量
colSums(is.na(X))

并且很可能你会有那个

all(colSums(is.na(X)) > 0)
# [1] TRUE