2017-10-26 18 views
0

azスコアまたはzスコアの曲線の下にプロットする関数を生成するだけですが、zshade(c(1,2))で2つのzスコアを与えると、次のエラーが発生します。グラフをプロットする際にエラーが発生するR

Error in seq.default(z1, z2, 0.01) : 'to' must be of length 1 

しかし、なぜこれが当てはまるのかわからないのですが、私はダブルチェックしましたz2と実際には長さが1ですので、どこにエラーがあるのか​​分かりません。

zshade = function(z, shade = "left") { 
    # If more than 2 z scores are given 
    if (length(z) > 2) { 
    stop("Error: Too many z scores given!") 
    } 

    # If two z scores are given 
    if (length(z) > 1) { 
    z1 = min(z) 
    z2 = max(z) 
    cord.x = c(z1, seq(z1, z2, 0.01), z2) 
    cord.y = c(0, dnorm(seq(z1, z2, 0.01)), 0) 
    curve(dnorm(x, 0, 1), xlim = c(-4, 4), main = "Standard Normal", 
     ylab = "", xlab = "") 
    polygon(cord.x, cord.y, col = "skyblue") 
    } 

    # If a single z score is given 
    if (shade == "left") { 
    z1 = -4 
    z2 = z 
    cord.x = c(z1, seq(z1, z2, 0.01), z2) 
    cord.y = c(0, dnorm(seq(z1, z2, 0.01)), 0) 
    curve(dnorm(x, 0, 1), xlim = c(-4, 4), main = "Standard Normal Curve", 
     ylab = "", xlab = "") 
    polygon(cord.x, cord.y, col = "skyblue") 
    } 
    if (shade == "right") { 
    z1 = z 
    z2 = 4 
    cord.x = c(z1, seq(z1, z2, 0.01), z2) 
    cord.y = c(0, dnorm(seq(z1, z2, 0.01)), 0) 
    curve(dnorm(x, 0, 1), xlim = c(-4, 4), main = "Standard Normal Curve", 
     ylab = "", xlab = "") 
    polygon(cord.x, cord.y, col = "skyblue") 
    } 
} 

zshade(C(1,2))

+0

0.01) '?あなたはその問題が何であるかを明確に見ることができますか? –

+0

行21を見てください: 'z2 = z'。そこから、そこから 'z2'は長さ2です。 –

+0

ああ、私がここで間違っていたことを完全に見てください。銃を飛ばして単純な行を忘れるというばかげたミス –

答えて

0

愚かなミス、以下のコードを見る

コードが関数呼び出し `zshade(Z1、Z2、製造さ
zshade = function(z, shade = "left") { 
# If more than 2 z scores are given 
if (length(z) > 2) { 
    stop("Error: Too many z scores given!") 
} 

# If two z scores are given 
if (length(z) > 1) { 
    z1 = min(z) 
    z2 = max(z) 
    cord.x = c(z1, seq(z1, z2, 0.01), z2) 
    cord.y = c(0, dnorm(seq(z1, z2, 0.01)), 0) 
    curve(dnorm(x, 0, 1), xlim = c(-4, 4), main = "Standard Normal", 
     ylab = "", xlab = "") 
    polygon(cord.x, cord.y, col = "skyblue") 
} 

if (length(z)==1) { 
    # If a single z score is given 
    if (shade == "left") { 
    z1 = -4 
    z2 = z 
    cord.x = c(z1, seq(z1, z2, 0.01), z2) 
    cord.y = c(0, dnorm(seq(z1, z2, 0.01)), 0) 
    curve(dnorm(x, 0, 1), xlim = c(-4, 4), main = "Standard Normal Curve", 
      ylab = "", xlab = "") 
    polygon(cord.x, cord.y, col = "skyblue") 
    } 
    if (shade == "right") { 
    z1 = z 
    z2 = 4 
    cord.x = c(z1, seq(z1, z2, 0.01), z2) 
    cord.y = c(0, dnorm(seq(z1, z2, 0.01)), 0) 
    curve(dnorm(x, 0, 1), xlim = c(-4, 4), main = "Standard Normal Curve", 
      ylab = "", xlab = "") 
    polygon(cord.x, cord.y, col = "skyblue") 
    } 
} 
} 
関連する問題