R包瞬间安装



我从CRAN存储库中安装了moments 0.14.1包,它显示为已安装。

但是当我尝试运行一个简单的测试时,我得到一个错误:

> library(moments)
> 
> # Generate some test data
> x <- rlnorm(100,meanlog = 0, sdlog = 1)
> library(moments)
> 
> # Generate some test data
> x <- rlnorm(100,meanlog = 0, sdlog = 1)
> 
> # Calculate the logmean of the test data
> mean_x <- meanlog(x)
Error in meanlog(x) : could not find function "meanlog"

我使用的是R版本4.2.1。我不知道如何修理它,所以我请求帮助

在您的问题中,您通过在rlnorm函数中指定参数meanlogsdlog,生成了x中对数正态分布的数据。这与library(moments)没有任何关系。

由于对数正态分布是非线性的,必须进行一些变换才能得到x的算术平均值和方差/标准差。您可以编写自己的函数:

set.seed(123)
x <- rlnorm(100, meanlog = 0, sdlog = 1)
meanlog_fun <- function(y) {
ests <- MASS::fitdistr(y, "lognormal")[[1]]
mn <- exp(ests[1] + (ests[2] ^ 2) / 2)
sd <- exp(ests[1] + (ests[2] ^ 2) / 2) * sqrt(exp(ests[2] ^ 2) - 1)
c(mean = mn, sd = sd)
}
meanlog_fun(x)
# mean.meanlog   sd.meanlog 
#     1.653437     1.871858 

由于这是一个编码论坛,所以我不会进入数学,但变换的公式几乎可以在任何地方找到,参见维基百科页面上的对数正态分布。

相关内容

  • 没有找到相关文章

最新更新