为什么R在非空矩阵上计算均值时返回NA

时间:2014-04-07 12:50:41

标签: r algorithm matrix mean na

我有一个由浮点数组成的矩阵。我已经检查过,没有遗漏的值。

最近,我更改了(例如)<:p>的列标题

2670

COLUMN-HEADER-A-2670

我正在运行最近模板预测算法提供的代码,我无法更改。

我发现,对于矩阵的每一行,在列轴上计算平均值时,可能会出现错误,即

exp.mean <- apply(exp.dataset,1,mean,na.rm=T)

所有行的平均值被强制为NA,R控制台告诉我

Browse[2]> exp.mean <- apply(exp.dataset,1,mean,na.rm=T)
There were 50 or more warnings (use warnings() to see the first 50)
1: In mean.default(newX[, i], ...) :
  argument is not numeric or logical: returning NA

我认为它与标题类型有关,但我找不到任何解释它的东西。该算法使用前面的列表示法。

1 个答案:

答案 0 :(得分:1)

答案是在3.1.0 read.table()中返回一个字符向量而不是数字向量,如果将表格表示为双矩阵可能会失去准确性。

来自here

  

type.convert()(因此默认情况下read.table())在表示数字输入时返回字符向量或因子,因为double会失去准确性。同样对于复杂的输入。

     

如果文件包含具有无法表示的小数位数的数字数据,并且要读取为数字,请将read.table()中的colClasses指定为&#34; numeric&#34;。