【发布时间】:2015-09-29 20:47:54
【问题描述】:
我有一个需要转换为正态分布的数据集。
首先,生成一个可重现的数据集。
df <- runif(500, 0, 100)
其次,定义一个函数。此函数将继续转换 d.f.直到 P > 0.05。转换后的 d.f.将生成并命名为 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)
}
三、测试df
shapiro.test(df)
Shapiro-Wilk normality test
data: df
W = 0.95997, p-value = 2.05e-10
因为P
BoxCoxTrans(df)
然后它给了我以下错误消息,
Error in qr.resid(xqr, w * fam(Y, lambda, j = TRUE)) :
NA/NaN/Inf in foreign function call (arg 5)
我做错了什么?
【问题讨论】:
-
你可能不想递归转换
y。
标签: r function transform r-car