1. ホーム
  2. r

[解決済み】Rエラー:型'closure'を型'double'のベクトルに強制できない

2022-01-26 08:52:07

質問

Rのプログラムで次のようなエラーが発生します。

Error in as.double(x) : cannot coerce type 'closure' to vector of the タイプ 'double'

これが私のコードです。どこから来ているのかがわかりません。

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")

解決方法は?

変更する。

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

になります。

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

あなたが使おうとしているのは、関数 sample (クロージャ)を数値(double)に変換する。