在 R 中转换左偏数据
Transform left skewed data in R
我有一个左倾斜的列,我需要对其进行转换。所以我尝试了这个
library(car)
vect<-c(1516201202, 1526238001, 1512050372, 1362933719, 1516342174, 1526502557 ,1523548827, 1512241202,1526417785, 1517846464)
powerTransform(vect)
向量中的值是 13 位数字 unix 纪元时间戳,像这样我有几千个值,在这里粘贴其中的 10 个,我对整个列进行相同的操作。这给了我一个错误
Error in qr.resid(xqr, w * fam(Y, lambda, j = TRUE, ...)) : NA/NaN/Inf in foreign function call (arg 5)
我期待转换后的专栏回来。关于如何在 R 中执行此操作的任何想法?
谢谢
拉吉
通常,car::powerTransform
returns 一个 powerTransform
对象(这是一个 list
,其中包含估计的 Box-Cox 变换参数)。要获得转换后的值,您需要 bcPower
,它使用 car::powerTransform
输出对象来转换原始数据。
很遗憾,您没有提供示例数据,因此这里有一个基于 iris
数据集的示例。
library(car)
# Box-Cox transformation of `Sepal.Length`
df <- iris
trans <- powerTransform(df$Sepal.Length)
# Or the same using formula syntax:
# trans <- powerTransform(Sepal.Length ~ 1, data = df)
# Add the transformed `Sepal.Length` data to the original `data.frame`
df <- cbind(
df,
Sepal.Length_trans = bcPower(
with(iris, cbind(Sepal.Length)), coef(trans))[, 1])
# Show a histogram of the Box-Cox-transformed data
library(ggplot2)
ggplot(df, aes(Sepal.Length_trans)) +
geom_histogram(aes(Sepal.Length_trans), bins = 30)
我有一个左倾斜的列,我需要对其进行转换。所以我尝试了这个
library(car)
vect<-c(1516201202, 1526238001, 1512050372, 1362933719, 1516342174, 1526502557 ,1523548827, 1512241202,1526417785, 1517846464)
powerTransform(vect)
向量中的值是 13 位数字 unix 纪元时间戳,像这样我有几千个值,在这里粘贴其中的 10 个,我对整个列进行相同的操作。这给了我一个错误
Error in qr.resid(xqr, w * fam(Y, lambda, j = TRUE, ...)) : NA/NaN/Inf in foreign function call (arg 5)
我期待转换后的专栏回来。关于如何在 R 中执行此操作的任何想法?
谢谢 拉吉
通常,car::powerTransform
returns 一个 powerTransform
对象(这是一个 list
,其中包含估计的 Box-Cox 变换参数)。要获得转换后的值,您需要 bcPower
,它使用 car::powerTransform
输出对象来转换原始数据。
很遗憾,您没有提供示例数据,因此这里有一个基于 iris
数据集的示例。
library(car)
# Box-Cox transformation of `Sepal.Length`
df <- iris
trans <- powerTransform(df$Sepal.Length)
# Or the same using formula syntax:
# trans <- powerTransform(Sepal.Length ~ 1, data = df)
# Add the transformed `Sepal.Length` data to the original `data.frame`
df <- cbind(
df,
Sepal.Length_trans = bcPower(
with(iris, cbind(Sepal.Length)), coef(trans))[, 1])
# Show a histogram of the Box-Cox-transformed data
library(ggplot2)
ggplot(df, aes(Sepal.Length_trans)) +
geom_histogram(aes(Sepal.Length_trans), bins = 30)