【问题标题】:Error: Object not found while running the code in RStudio错误:在 RStudio 中运行代码时找不到对象
【发布时间】:2014-04-27 10:35:04
【问题描述】:

我对 R 很陌生,刚刚开始编写 smalls 函数。这里我写了一个函数,它以数据框为参数并返回每列的平均值

代码:

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)

j[i] = mean(df[[i]]) 中的错误:找不到对象“j”

我不明白这个错误。当我在 Rstudio 中运行它时,它会给出这个错误。但是,在 R 中却没有。

【问题讨论】:

  • 你也可以看看colMeans

标签: r rstudio


【解决方案1】:

此代码不起作用,独立于 RStudio。当您键入j[i] 时,R 会考虑ji-th 元素,但未定义j。之前定义:

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

    print (j)
}

【讨论】:

    【解决方案2】:

    你为什么不直接使用 colMeans?

    colMeans (x)
    

    【讨论】:

    • 确实如此,但问题是:为什么这段代码不起作用?.
    • @StéphaneLauren, colMeans 没有回答这个问题。这是一个不同的解决方案,已在 cmets 中提供
    • @DavidArenburg 这并不重要,但问题的重点不是:如何计算列的含义?,而是:为什么这段代码不'不工作。所以这根本不能回答这个问题。我之所以这么说,是因为我已经对我的一些问题尝试了这样的答案。
    猜你喜欢
    • 2015-04-08
    • 2016-05-06
    • 2020-05-05
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2018-10-06
    相关资源
    最近更新 更多