初学者的长度错误无效

时间:2016-04-14 11:40:57

标签: r

我已检查过以前的问题,但找不到答案

 columnmean<-function(y){
    n<-ncol(y)
    means<-numeric(n)
    for(i in 1:n){
        means[i]<-mean(y[,i])
    }
    means}

我根本无法理解错误,即使代码似乎也是对的。此外,如果我在此行输入n的值

,我会得到一些尺寸错误
 means[i]<-mean(y[,i])

1 个答案:

答案 0 :(得分:2)

以下是错误的再现:

columnmean<-function(y){
  n <- ncol(y)
  means <- numeric(n)
  for(i in 1:n) {
    means[i] <- mean(y[,i])
  }
  means
}
columnmean(1:10)

如果y是向量,则ncol(y)的结果为NULL。函数中的以下计算会引发错误 同样colMeans(1:10)将导致错误(由于更好的内部检查参数,另一个错误)。

因此,您的代码对于二维数据是正确的,例如:

columnmean(BOD)
# [1]  3.666667 14.833333

错误取决于yy只有一个维度,即向量~~&gt;错误)。