1

1次から4次まで、0付近と平均付近のサンプルモーメントを計算する関数をコーディングしようとしています。1本目は落ちましたが、2本目で困っています。これが私のコードです:

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 関数を使用しました。平均付近のサンプルモーメントのコードがわかりません。リスト内の個々の要素にアクセスし、それを平均値から引き、適切なべき乗にする必要があります。インデックスを使用しても役に立たなかったので、私の主な質問は次のとおりです。リスト内の各要素をどのように参照しますか?

4

1 に答える 1

1
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))
}

前もって計算することは (マイナーな) 効率の改善であることに注意してください。それ以外の場合は、4 回計算されmuます。n

ベクトルの要素を参照するには、角括弧を使用しますx[2]

于 2013-10-30T00:15:50.337 に答える