【问题标题】:R error: cannot coerce type 'closure' to vector of type 'double'R错误:无法将类型“闭包”强制为“双”类型的向量
【发布时间】:2015-08-19 18:44:00
【问题描述】:

我的 R 程序中出现错误提示:

as.double(x) 中的错误:无法将类型“闭包”强制转换为 输入“双”

这是我的代码,我不知道它来自哪里:

norm.pop = rnorm(100000,10,sd = 1)
exp.pop = rexp(100000, rate = 1/10)
true.mean = 10

norm.func = function(n, N, type)
{
  if(type == "N")
    pop = norm.pop
  else if(type =="E")
    pop = exp.pop
  all.the.probs = sapply(1:N, function(i)
  {
    the.sample = sample(pop, size = n, replace = TRUE)
    x.bar = mean(the.sample)
    sd.norm = sd(sample)/sqrt(n)
    z.score = 1.96
    upper.fence = x.bar + z.score*sd.norm
    lower.fence = x.bar - z.score*sd.norm
    if((true.mean >= lower.fence) & (true.mean <= upper.fence))
    {
      return(1)
    }
    else
    {
      return (0)
    }
  })

  result = mean(all.the.probs)

  return (result) 
}

norm.func(10, 10000, "N")

【问题讨论】:

    标签: r


    【解决方案1】:

    变化:

    sd.norm = sd(sample)/sqrt(n)
    

    到:

    sd.norm = sd(the.sample)/sqrt(n)
    

    您正在尝试将函数 sample(闭包)用作数字(双精度)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2015-04-29
      相关资源
      最近更新 更多