繁体   English   中英

计算R中的样本矩(原始代码)

[英]Calculating Sample Moments in R (raw code)

我正在尝试对函数进行编码,这些函数将计算从1阶到4阶在0和均值附近的样本矩。 我记下了第一个,但第二个却遇到了麻烦。 这是我的代码:

moment.zero <- function(x) {
  lapply(1:4, function(i) (1/length(x$elements)) * sum(x$elements^i))
}

moment.mean <- function(x) {
  lapply(1:4, function(i) (1/length(x$elements)) * sum(x$elements #mistake is here - mean(x$elements))^i)
}

我不应该使用循环,所以我使用了lapply函数。 我无法找出均值周围样本时刻的代码; 我需要访问列表中的每个元素,从均值中减去它,然后将其提高到适当的幂。 使用索引没有帮助,所以我的主要问题是:如何引用列表中的每个元素?

moment.zero <- function(x) {
  n <- length(x)
  sapply(1:4, function(i) (1/n) * sum(x^i))
}

moment.mean <- function(x) {
  mu <- mean(x)
  n <- length(x)
  sapply(1:4, function(i) (1/n) * sum((x - mu)^i))
}

请注意,预先计算mun是(较小的)效率改进-否则它们将被计算四次。

要引用向量的元素,请使用方括号:例如x[2]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM