2017-06-15 17 views
2

私は繁殖ペア(Parents)あたり1日あたりegg_numberのデータを持っています。私は、以下のデータ "egg_output1"から、親によってグループ化された卵の出現間の平均時間(日数)を決定しようとしています。グループ化されたイベント頻度を取得するにはどうすればよいですか?

基本的に、データが時間順に並べられた後、親によってグループ化された行の日付の平均の差です。これは可能ですか?

Tank  Parents       date   egg_number 
1: P3-T25 DON_AGEM_031FXDON_AGEM_036M  2017-06-03  2 
2: P3-T25 DON_AGEM_031FXDON_AGEM_036M  2017-06-03  1 
3: P3-T25 DON_AGEM_031FXDON_AGEM_036M  2017-05-23  1 

私は次のコードを使用して試してみました:

as.Date(egg_output1$date) 
egg <- egg_output1[order(egg_output1$date),] 
ddply(
    egg, 
    c("Parents"), 
    summarize, 
    average = mean(diff(date)) 
) 

をしかし、これは、次の警告とNA返す:から

eggs <- data.frame(
    parents = sample(c("005Fx001M", "008Fx006M","028Fx026M"), 10, replace = TRUE), 
    date = sample(seq(as.Date('2016/01/01'), as.Date('2017/01/01'), by="day"), 10), 
    egg_number = sample(c("1", "2"), 10, replace = TRUE)) 
+1

データの小さなサンプルを含めることはできますか? – RobertMc

+0

[Rで素晴らしい再生可能サンプルを作成する方法](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – Masoud

+1

試してみてください。 )、 'c(" Parents ")の代わりに。最初の例では '。(Parents) 'になりますが、これはサンプルデータで私にとってはうまくいきました。 –

答えて

0

Warning messages: 
1: In mean.default(diff(date)) : argument is not numeric or logical: returning NA 
2: In mean.default(diff(date)) : argument is not numeric or logical: returning NA 
3: In mean.default(diff(date)) : argument is not numeric or logical: returning NA 

サンプルデータを

> dt=NULL 
> dt$Tank=rep("P3-T25",3) 
> dt$Parents=rep("DON_AGEM_031FXDON_AGEM_036M",3) 
> dt$Date=c("2017-06-3","2017-06-3","2017-05-3") 
> dt$egg_number=c(2,1,1) 
> dt=as.data.frame(dt) 
> dt 
    Tank      Parents  Date egg_number 
1 P3-T25 DON_AGEM_031FXDON_AGEM_036M 2017-06-3   2 
2 P3-T25 DON_AGEM_031FXDON_AGEM_036M 2017-06-3   1 
3 P3-T25 DON_AGEM_031FXDON_AGEM_036M 2017-05-3   1 


library(data.table) 

dt=data.table(dt) 
setkey(dt,Parents) 
library(lubridate) 
    > dt$Date=ymd(dt$Date) 
> dt[,diff:=c(NA,diff(Date)),by=Parents] 
> dt 
    Tank      Parents  Date egg_number diff 
1: P3-T25 DON_AGEM_031FXDON_AGEM_036M 2017-06-03   2 NA 
2: P3-T25 DON_AGEM_031FXDON_AGEM_036M 2017-06-03   1 0 
3: P3-T25 DON_AGEM_031FXDON_AGEM_036M 2017-05-03   1 -31 
関連する問題