2017-02-18 4 views
-2

を意味します。計算し、プロットの時間間隔は、私がdplyrとggplot2を使って時間をかけて、異なる色の動物の数を変える計算し、プロットしたい

Iランダム日付に異なる動物の観察を持っており、私は最初のグループたい4日間のブラケットにそれら観測し、各4日間のブラケットの平均色を算出します。最初の数回は私が気にしていることを示すために、特別な結果を持つBracket.meanという列を作成しました。可能であれば、後の解析とプロットのために、同じデータフレームにこれらの手段を追加したいと思います(新しいdata.frameやベクトルを作成するのではなく)。

プロットでは、ブラケットの平均値(SDまたはボックスプロット)、および日常的な観測(おそらくバックグラウンドでの観測のオーバーレイ)が時間とともにどのように表示されることを期待しています。以下は

は、私は(私はcalulcateことを期待しています作ら「Bracket.mean」列で)使用しているデータセットの一部です。 「数」は、特定の「色」の与えられた「日付」にある動物の数です。

Date Julian Count Color Bracket.color 
4/19/16 110 1 50 mean of 4/19-4/22 
4/19/16 110 1 50 mean of 4/19-4/22 
4/19/16 110 1 100 mean of 4/19-4/22 
4/20/16 111 4 50 mean of 4/19-4/22 
4/20/16 111 1 0 mean of 4/19-4/22 
4/20/16 111 2 100 mean of 4/19-4/22 
4/20/16 111 1 50 mean of 4/19-4/22 
4/20/16 111 2 100 mean of 4/19-4/22 
4/21/16 112 1 100 mean of 4/19-4/22 
4/21/16 112 2 50 mean of 4/19-4/22 
4/21/16 112 4 50 mean of 4/19-4/22 
4/21/16 112 1 100 mean of 4/19-4/22 
4/21/16 112 2 50 mean of 4/19-4/22 
4/21/16 112 1 0 mean of 4/19-4/22 
4/22/16 113 2 0 mean of 4/19-4/22 
4/22/16 113 4 50 mean of 4/23-4/26 
4/23/16 114 6 0 mean of 4/23-4/26 
4/23/16 114 1 50 mean of 4/23-4/26 
4/24/16 115 2 0 mean of 4/23-4/26 
4/26/16 117 5 0 mean of 4/23-4/26 
4/30/16 121 1 50 
5/2/16 123 1 NA 
5/2/16 123 1 50 
5/7/16 128 2 0 
5/7/16 128 3 0 
5/7/16 128 3 0 
5/8/16 129 4 0 
5/8/16 129 1 0 
5/10/16 131 1 50 
5/10/16 131 4 50 
5/12/16 133 1 0 
5/13/16 134 1 50 
5/14/16 135 1 0 
5/14/16 135 2 50 
5/14/16 135 2 0 
5/14/16 135 1 0 
5/17/16 138 1 0 
5/17/16 138 2 0 
5/23/16 144 1 0 
5/24/16 145 4 0 
5/24/16 145 1 0 
5/24/16 145 1 0 
5/27/16 148 3 NA 
5/27/16 148 1 0 
5/27/16 148 1 50 

ご協力いただければ幸いです。ありがとうございました!このような

答えて

0

何かあなたが始める必要があります。

library(dplyr) 
df <- df %>% mutate(Date = as.Date(Date, format='%m/%d/%y'), 
        Start = as.Date(cut(Date, breaks= seq(min(Date), max(Date)+4, by = 4)))) %>% 
    mutate(End = Start+3) %>% 
    group_by(Start,End) %>% 
    summarise(meanColor = mean(Color, na.rm=T), 
       sdColor = sd(Color, na.rm=T)) 
df 
#Source: local data frame [10 x 4] 
#Groups: Start [?] 
#  Start  End meanColor sdColor 
#  <date>  <date>  <dbl> <dbl> 
#1 2016-04-19 2016-04-22 56.25000 35.93976 
#2 2016-04-23 2016-04-26 12.50000 25.00000 
#3 2016-04-27 2016-04-30 50.00000  NA 
#4 2016-05-01 2016-05-04 50.00000  NA 
#5 2016-05-05 2016-05-08 0.00000 0.00000 
#6 2016-05-09 2016-05-12 33.33333 28.86751 
#7 2016-05-13 2016-05-16 20.00000 27.38613 
#8 2016-05-17 2016-05-20 0.00000 0.00000 
#9 2016-05-21 2016-05-24 0.00000 0.00000 
#10 2016-05-25 2016-05-28 25.00000 35.35534 

次に使用してプロットし、

library(ggplot) 
ggplot(df) + geom_line(aes(Start,meanColor)) 
+0

グレート、どうもありがとうございました!さらに2つのことをお願いします。1.特定の「色」段階の複数の動物が記録されたという事実を、4日間の平均計算に組み込むことができますか? - 'Count'列に示されているように(例えば、 'Date' 4/20に 'Color'タイプ50の動物が5(= 4 + 1)あった) 2.新しい 'Start'と 'meanColor'変数を同じd.fに追加できますか?元の 'Color'観測値と同じように 'meanColor'と個々の 'Color'観測値をプロットすることができます(可能であれば、 'Count'> 1ならばすべての観測値を表示します)。ありがとう! – Kestrel1

+0

追加の次元を得るために 'group_by()'に 'Color'を追加してください。データを元のデータフレームに追加したい場合は、 'summarize()'を 'mutate()'に置き換えてください。 –

+0

偉大な、mutate作品!しかし、私の追加の質問#1に関して:各列が1つの個々の動物観察を表すのとは対照的に、私はその色で観察された動物の数を持っています。時には1つの個体(Count = 1)だったこともありますが、時にはそれがより多かった(例えば、4/22には色が50:Count = 4の4人がいました)。だから私は平均の計算に 'Count'変数を含めるようにしています(コマンドgroup_by(Start、End)は問題ありません)。それを修正するために4/22観測などの3つの同じ行をコピーして貼り付ける必要がありますか、別の方法がありますか?Thx – Kestrel1

関連する問題