错误:在RStudio运行代码时未找到对象

3

我很新于R语言,并刚开始写一些小函数。这里我写了一个以数据框为参数的函数,返回每列的平均值。

代码:

n = c(12,13,14,16,16)
m = c(11,2,23,45,67)
a = c(34,343,5,2,1)
b = c(88,33,2,1,44)

db = data.frame (n,m,a,b )

db
   n  m   a  b
1 12 11  34 88
2 13  2 343 33
3 14 23   5  2
4 16 45   2  1
5 16 67   1 44

mean.dataframe = function (df)
{
    for (i in 1:ncol(df))
    {
        j[i]= mean(df[[i]])
    }

    print (j)
}


avgcol = mean.dataframe(db)

Error in j[i] = mean(df[[i]]) : object 'j' not found

这个错误的原因我不太清楚。在 Rstudio 中运行时会出现此错误,但是在 R 中则不会。


你也可以看一下 colMeans - Henrik
2个回答

1
这段代码无法运行,与RStudio无关。当您键入j[i]时,R会考虑j的第i个元素,但是j没有被定义。请先定义它:
mean.dataframe = function (df)
{
    j = rep(NA,ncol(df))
    for (i in 1:ncol(df))
    {
        j[i]= mean(df[[i]])
    }

    print (j)
}

0

为什么不直接使用colMeans呢?

colMeans (x)

确实,但问题是:为什么这段代码不起作用? - Stéphane Laurent
@StéphaneLauren,colMeans并不能回答这个问题。这是一个不同的解决方案,在评论中已经提供了。 - David Arenburg
@DavidArenburg 这并不重要,但问题的主要点不是:“如何计算列均值?”,而是:“为什么这段代码不起作用?”因此这根本没有回答问题。我只是这样说是因为我已经尝试过对我的一些问题给出这样的答案。 - Stéphane Laurent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接