【问题标题】:How to solve data frame bbject not found error in R如何解决 R 中未找到数据框 bbject 错误
【发布时间】:2019-01-10 23:27:52
【问题描述】:

我的数据框有问题,导致错误消息 “找不到对象”。

我定义了两个函数,Mom 和 ExpB,其中 ExpB 在 main 中被调用 本身就叫妈妈。 Mom 定义了未找到的对象“Out”。 以下是相关代码部分:

Mom <- function(x){ 
  Out.data = data.frame( 
    m  = mean(x),
    sx = sqrt( mean(x^2) - mean(x)^2 ),
    se = sqrt( mean(x^2) - mean(x)^2 ) / sqrt( length(x) )
  ) 
  return(Out)
}

ExpB <- function(Inp) {
    ...
    dA  = seq(1,ns)*0
    ...
    dA_mom = Mom(dA);   
    ...
}

线 输出 = ExpB(Inp) 主要导致消息: “妈妈(dA)中的错误:找不到对象'Out'”。

【问题讨论】:

  • 看起来妈妈应该返回 Out.data,而不是 Out。在 Mom 的体内,你没有定义一个名为 Out 的对象。

标签: r dataframe


【解决方案1】:

扩展我的评论。请注意,如果没有看到 ExpB 的完整定义,很难知道这是否就是全部。在Mom 的主体内,您创建了一个名为Out.data 的新对象。但是,Mom 会返回一个名为 Out 的对象。在Mom 中没有定义对象Out,因此R 告诉您它找不到名为Out 的对象。在return 调用中将Out 更改为Out.data 将解决此问题,正如我在下面的Mom2 中演示的那样。

> vec <- rnorm(10)
> 
> Mom1 <- function(x){ 
+   Out.data = data.frame( 
+     m  = mean(x),
+     sx = sqrt( mean(x^2) - mean(x)^2 ),
+     se = sqrt( mean(x^2) - mean(x)^2 ) / sqrt( length(x) )
+   ) 
+   return(Out)
+ }
> 
> Mom1(vec)
Error in Mom1(vec) : object 'Out' not found
> 
> Mom2 <- function(x){ 
+   Out.data = data.frame( 
+     m  = mean(x),
+     sx = sqrt( mean(x^2) - mean(x)^2 ),
+     se = sqrt( mean(x^2) - mean(x)^2 ) / sqrt( length(x) )
+   ) 
+   return(Out.data)
+ }
> 
> Mom2(vec)
          m       sx        se
1 0.1080265 1.111821 0.3515887

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多