2017-10-31 11 views
0

Rのさまざまな列の平均の計算方法について、さまざまなスレッドを読んでいますが、私が実行している問題は、これまでRで使用していた関数が、他のプログラム(SASとSPSS)。Rのいくつかの列の計算方法R

これまでのところ、私は、これらの機能を使用している:これらの機能のすべては、上記の私のSAS異なる結果が得られ

newdata2$mean <- rowMeans(subset(newdata2, select = c(bird1, bird2, bird3, bird4, bird5, bird6, bird7, bird8, bird9)), na.rm = TRUE) 

newdata2$birdsMean <- rowMeans(newdata2[,7:15], na.rm=TRUE) 
(The bird data appears in columns 7 to 15.) 

と:

newdata2$mean=rowMeans(newdata2[,c("bird1", "bird2", "bird3", "bird4", "bird5", "bird6", "bird7", "bird8", "bird9")], na.rm=TRUE) 

とをSPSSと私はこれらの他の2つのプログラムを使用する他の人と働いているので、私はdifferenc es。 1つの例では、平均の差は308です。

また、前述の関数の中央値は、SASおよびSPSSの同じ変数のMeanと同じですが、他のほとんどの結果(Min、Max 、SD)は異なる。

これまでのところ、以下の機能が私にSASとSPSSと整合する結果が得られ:
mean(newdata2$bird1, na.rm = TRUE)(。(その後、私は他の鳥のためにこれを繰り返し、その後、すべての鳥の平均を取得するために電卓を開きます))

と:この方法で

Supermean <- (mean(newdata2$bird1, na.rm = TRUE) + mean(newdata2$bird2, na.rm = TRUE) + mean(newdata2$bird3, na.rm = TRUE) + mean(newdata2$bird4, na.rm = TRUE) + mean(newdata2$bird5, na.rm = TRUE) + mean(newdata2$bird6, na.rm = TRUE) + mean(newdata2$bird7, na.rm = TRUE) + mean(newdata2$bird8, na.rm = TRUE) + mean(newdata2$bird9, na.rm = TRUE))/9 

これらの問題は、私はそれらのための新しい関数を作成しない限り、私は平均値、中央値、最小値、最大値、SDなどの素敵な要約を得ることができないということです。要約する

、私の質問は以下のとおりです。

1)私にSASとSPSS(SASとSPSSの調査結果が同一である)異なる結果を与え、私の機能のいずれかの明確なエラーがありますか?私はRの新機能ですが、他のスタックスレッドでこれらの機能が見つかりました。

2)手段とすばらしい要約統計情報を取得する他の方法はありますか?

3)Rの中央値がSASとSPSSのMeanと同じで、それがなぜなのかは奇妙ではありませんか?

4)上記のどの機能がRの善良/悪い練習を示していますか?

5)個々の鳥の手段はSPSSおよびSASと一致していますが、鳥を行為を使用する関数に含めると何か問題が生じますが、エラーは表示されません。

結果が一貫していないため、私は上記の機能をプロジェクトに依存することを躊躇しています。私はそれが丸め誤差かもしれないと思ったが、SPSSファイルをRにインポートし、Rの個々の鳥の平均がSASとSPSSの個々の鳥の平均と一致するという違いを説明していない(私は思う)。私は他の変数にもこのメソッドを使用していますので、私はRで正確に働くことができると期待しています。お手伝いをありがとう。Rヘルプから

+4

を移動するための方法です。 –

答えて

0

## Compute row and column sums for a matrix: 
x <- cbind(x1 = 3, x2 = c(4:1, 2:5)) 
> x 
    x1 x2 
[1,] 3 4 
[2,] 3 3 
[3,] 3 2 
[4,] 3 1 
[5,] 3 2 
[6,] 3 3 
[7,] 3 4 
[8,] 3 5 
rowMeans(x, na.rm = TRUE) 
[1] 3.5 3.0 2.5 2.0 2.5 3.0 3.5 4.0 
colMeans(x, na.rm = TRUE) 
x1 x2 
3 3 

おそらくcolMeansは、あなたがあなたの代わりにrowMeansのcolMeansを使用する必要があり、列の平均値をしたい場合は

+0

答えをありがとう。私はcbindを使用しました:x < - cbind(newdata2 $ bird1、newdata2 $ bird2)そして次にcolMeans(x、na.rm = TRUE)と私は2つの手段を得ます。しかし、私はbird1とbird2を含むカテゴリAll-birdsを作成しています。すべてのbirds、min、max、sdの平均などの記述を必要とします。 Rでそれを行うためのすてきな方法はありますか? – Hljon

+0

私の考えをよりよく伝えるためには、y < - colMeans(x、na.rm = TRUE)とこれ:summary(y)を使って正確な平均値を得ることができますが、MinとMaxとsdは正しくない彼らは単にcolMeansに基づいています。私は、私が見ていないという簡単な解決策があると確信しています。 – Hljon

+0

その後、私はsd(x、na.rm = TRUE)を使って正確なsdを得ることができました。 ありがとうございました。正確な結果が得られました。私はまだRのクールなフィーチャー/パッケージを見つけていません。一度にすべてを行うことができます(選択した列の平均、sdなどを一度に表示するなど)ので、あなたの推奨についてお聞きしたいと思います。 – Hljon