试图找到数据集中每列的平均值

时间:2016-06-24 17:42:53

标签: r

大家好,我对编程很新,我想知道是否有人可以帮助我。我只是在玩r并希望创建一个函数,它返回一个数据集中每列的均值的向量,用户将作为参数放入。问题是我试图在没有应用函数的情况下这样做,所以我只是手动尝试它并感觉我非常接近完成它。只是想问一下是否有人可以查看它以查看我在哪里犯了错误。 这是我的代码:

findMeans<- function(data)
{
  meanVec <- numeric()
  for(i in 1:6)
  {
    mean=0
    for( j in 1:153)
    {
      value=0
      count=0
      if(is.na(data[j,i])==FALSE)
      {
        value= value + data[i,j]
        count=count+1
      }
      else
      {
        value= value +0
      }
    }
    mean =value/count
    meanVec[i]<-mean


  }
  meanVec



} 

当我尝试列出矢量时,它只是给出了这个

> meanVec
numeric(0)
是否有人可能会对我做错了什么有所了解?

1 个答案:

答案 0 :(得分:0)

如果您正在寻找函数编写实践,并且已经知道colMeans函数,那么我发现了一些错误。

1)我假设当你从1:6开始,你要经历数据框中的每一列,而1:153,你将经历每一行。如果这是准确的,那么value=0count = 0语句应该在mean = 0旁边向上移动一级。否则,您将每行重置为零,除了报告它遇到的最后一个值之外,它不会执行任何操作。

2)在value= value + data[i,j]行中,您需要data[j,i]。您反转了行和列值。

通过这两项更改,您的函数似乎适用于包含6列和153行的数据集。对于更多练习,我建议尝试找到一种方法来为任意数量的列和行推广函数。