正規分布に変換する必要があるデータセットがあります。
まず、再現可能なデータセットを生成します。
df <- runif(500, 0, 100)
次に、関数を定義します。この関数は、P > 0.05 になるまで df を変換し続けます。変換された df が生成され、y という名前が付けられます。
BoxCoxTrans <- function(y)
{
lambda <- 1
constant <- 0
while(shapiro.test(y)$p.value < 0.10)
{
constant <- abs(min(y, na.rm = TRUE)) + 0.001
y <- y + constant
lambda <- powerTransform(y)$lambda
y <- y ^ lambda
}
assign("y", y, envir = .GlobalEnv)
}
第三に、自由度をテストする
shapiro.test(df)
Shapiro-Wilk normality test
data: df
W = 0.95997, p-value = 2.05e-10
P < 0.05 であるため、df を変換します。
BoxCoxTrans(df)
次に、次のエラーメッセージが表示されます。
Error in qr.resid(xqr, w * fam(Y, lambda, j = TRUE)) :
NA/NaN/Inf in foreign function call (arg 5)
私は何を間違えましたか?