我对导致错误消息的数据框有疑问 “找不到对象”。
我定义了两个函数Mom和ExpB,其中main中调用了ExpB 自己叫妈妈妈妈定义了找不到的对象“ 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) 在主要导致消息: “ Mom(dA)中的错误:找不到对象'Out'”。
答案 0 :(得分:0)
扩大我的评论。请注意,在没有看到ExpB的完整定义的情况下,很难知道这是否全部。在Mom
的主体内部,创建一个名为Out.data
的新对象。但是,Mom
疲倦地返回了名为Out
的物体。 Out
中没有定义对象Mom
,因此R告诉您找不到名为Out
的对象。在Out
调用中将Out.data
更改为return
将解决此问题,正如我在下面的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