2012-11-12 18 views
5

リストがあり、その要素の平均を計算するのにlapply()を使用したいと思います。リストの要素に平均関数を適用する方法R

>list[[7]] 
[1] 1 1 1 1 1 1 1 1 1 1 

を、私の出力は次のようになります:たとえば、リストの第七項目のために私が持っている

> mean(temp[[7]][1:10]) 
[1] 1 

をしかし、私はその結果以下のようなlapply()を使用するときに何か他のものになります。私は何をすべきか?

> lapply(list[[7]][1:10],mean) 
[[1]] 
[1] 1 

[[2]] 
[1] 1 
. 
. 
. 
[[10]] 
[1] 1 
+2

リストの1つの要素に 'lapply'を使用すると、ベクトルの各要素の平均を取ることになります。代わりに 'lapply(list、mean)'を使用してください。また、 'list'を変数名として使用することは、重要な機能であるため、悪い考えです! – Justin

答えて

8

だけmean(list[[7]])を使用し、リストの第7要素の平均値を取得します。 リストの各要素の平均を取得するには、lapply(list,mean)を使用します。 あなたのリストlistを呼び出すことは本当に悪い考えです。

+0

ありがとうございました:)また、名前を変更します。 – hora

+0

この回答が、あなたが探していたものの適切な説明を提供したと感じる場合は、スコアの下にある灰色のチェックマークをチェックして、 。 –

4

lapplyの代わりにsapplyを使用することを検討してください。

# sample data 
a<- 1:3 
dat <- list(a, a*2, a*3) 

# sapply gives a tidier output 
> sapply(dat, mean) 
[1] 2 4 6 

> lapply(dat, mean) 
[[1]] 
[1] 2 

[[2]] 
[1] 4 

[[3]] 
[1] 6 



また、あなたは plyrパッケージを見てみたいことがあります。 This questionは、異なる* apply関数を説明するうえでもうまくいきます。

関連する問題