2017-10-04 5 views
0

私はRに新しいので、私のタイトルは理にかなっていないかもしれません。基本的に、私はこのデータセットを持っています。これは2つの異なるサイトで収集された昆虫の長さです。 「サマリー」機能を使用すると、両方のサイトの値が得られました。それぞれのサイトの平均を計算したいと思います。サブセットから平均を計算するにはどうすればよいですか?

> ls() 
[1] "simulies" 
> ls.str() 
simulies : 'data.frame':  615 obs. of 2 variables: 
$ Site : Factor w/ 2 levels "Lovering","Orford": 2 2 2 2 2 2 2 2 2 2 ... 
$ Length: num 4.1 2.8 2.2 3.2 3.2 3.1 3.1 4.1 4.1 3.2 ... 
> summary(simulies) 
    Site   Length  
Lovering:398 Min. :0.600 
Orford :217 1st Qu.:1.300 
       Median :1.600 
       Mean :2.034 
       3rd Qu.:2.700 
       Max. :5.000 
+0

1はtapply機能を使用することができるだけでベースRを使用します: 'tapply(simulies、simulies $ Site、FUN = mean)' – Dave2e

+0

まあ、ベースで 'tapply(simulies $ Length、simulies $ Site、FUN = mean)'になります。ベン、あなたがあなたの質問を編集したのを見ています - あなたは自分の訴訟に回答を適用するのに問題がありますか?またはあなたは良いですか? – Gregor

+0

はい私は重複を参照しようとしていたし、どちらもうまくいきませんでした。しかし、私は以下のコメントにいくつかの助けを得た、私は "サイト"で首都Sが不足していた。 – Ben

答えて

0

さまざまなオプションがあります。そのうちの2:

は、一つのサイトの平均値を取得するには:

mean(simulies$Length[simulies$Site=="Lovering"]) 

または両方のサイトのための出力を得るためにddply使用:

library(plyr) 
ddply(simulies, .(Site), summarize, Mean=mean(Length)) 
+0

最初のオプションについては、[1]を取得します。NaN – Ben

+0

サイトに大文字を使用する必要があることに気がついたので、私の回答が更新されました。今はうまくいくはずです。 – user3640617

+0

今すぐ動作します!ありがとうございます。 – Ben

関連する問題