2017-08-09 12 views
1

こんにちは私はいくつかの実験で昆虫の累積日数を計算する必要があります。これは次のようになり、私のデータフレームがrを使用して累積昆虫の日を計算する方法は?

Rep trt  date BLB 
1 I 1 7/12/2017 3 
2 I 2 7/12/2017 2 
3 I 3 7/12/2017 4 
4 I 4 7/12/2017 0 
5 II 1 7/12/2017 1 
6 II 2 7/12/2017 2 
7 II 3 7/12/2017 2 
8 II 4 7/12/2017 1 
9 III 1 7/12/2017 3 
10 III 2 7/12/2017 2 
11 III 3 7/12/2017 1 
12 III 4 7/12/2017 1 
13 IV 1 7/12/2017 0 
14 IV 2 7/12/2017 3 
15 IV 3 7/12/2017 3 
16 IV 4 7/12/2017 0 
17 I 1 7/20/2017 12 
18 I 2 7/20/2017 6 
19 I 3 7/20/2017 7 
20 I 4 7/20/2017 18 
21 II 1 7/20/2017 17 
22 II 2 7/20/2017 11 
23 II 3 7/20/2017 25 
24 II 4 7/20/2017 17 
25 III 1 7/20/2017 18 
26 III 2 7/20/2017 6 
27 III 3 7/20/2017 48 
28 III 4 7/20/2017 13 
29 IV 1 7/20/2017 7 
30 IV 2 7/20/2017 22 
31 IV 3 7/20/2017 18 
32 IV 4 7/20/2017 11 
33 I 1 7/27/2017 1 
34 I 2 7/27/2017 3 
35 I 3 7/27/2017 4 
36 I 4 7/27/2017 0 
37 II 1 7/27/2017 1 
38 II 2 7/27/2017 0 
39 II 3 7/27/2017 1 
40 II 4 7/27/2017 0 
41 III 1 7/27/2017 1 
42 III 2 7/27/2017 1 
43 III 3 7/27/2017 0 
44 III 4 7/27/2017 0 
45 IV 1 7/27/2017 1 
46 IV 2 7/27/2017 0 
47 IV 3 7/27/2017 1 
48 IV 4 7/27/2017 2 
49 I 1 8/2/2017 0 
50 I 2 8/2/2017 0 
51 I 3 8/2/2017 1 
52 I 4 8/2/2017 0 
53 II 1 8/2/2017 0 
54 II 2 8/2/2017 0 
55 II 3 8/2/2017 0 
56 II 4 8/2/2017 0 
57 III 1 8/2/2017 1 
58 III 2 8/2/2017 0 
59 III 3 8/2/2017 0 
60 III 4 8/2/2017 0 
61 IV 1 8/2/2017 0 
62 IV 2 8/2/2017 0 
63 IV 3 8/2/2017 0 
64 IV 4 8/2/2017 2 

構造のように見えるものです:

data.frame': 64 obs. of 4 variables: 
$ Rep : Factor w/ 4 levels "I","II","III",..: 1 1 1 1 2 2 2 2 3 3 ... 
$ trt : Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ... 
$ date: Factor w/ 4 levels "7/12/2017","7/20/2017",..: 1 1 1 1 1 1 1 1 1 1 ... 
$ BLB : int 3 2 4 0 1 2 2 1 3 2 ... 

それを行うには、私は別の治療のための日付の組み合わせごと昆虫の平均値を計算する必要があります。例えば、私は各治療のために7/12と7/20の間のすべてを計算しなければなりません。それから私は7月20日と7月27日の間の平均を計算する必要があります。誰かがrソフトウェアを使ってこれを行う方法を知っていますか?私は本当に助けに感謝します!

+0

7/12と7/20を1つのグループとして扱っていますか? 7/20と7/27の別の? – useR

+0

はい私は2つの日付のそれぞれの組み合わせを1つのグループとして扱います!! – Obiratanea

+1

次回に 'dput(dataframe)'を使うことができますか? – CPak

答えて

1

まず(...あなたはdput(データを提供されている場合いいだろう))データを作成します。

set.seed(123) 
df = data.frame(Rep = rep(c("I","II","III","IV"), each = 4, times = 4), 
       trt = as.factor(rep(1:4, times = 16)), 
       date = as.Date(rep(c("7/12/2017", "7/20/2017", "7/27/2017", "8/2/2017"), each = 16), 
           format = "%m/%d/%Y"), 
       BLB = sample(0:50, 64, replace = TRUE)) 

> str(df) 
'data.frame': 64 obs. of 4 variables: 
$ Rep : Factor w/ 4 levels "I","II","III",..: 1 1 1 1 2 2 2 2 3 3 ... 
$ trt : Factor w/ 4 levels "1","2","3","4": 1 2 3 4 1 2 3 4 1 2 ... 
$ date: Date, format: "2017-07-12" "2017-07-12" "2017-07-12" ... 
$ BLB : int 14 40 20 45 47 2 26 45 28 23 ... 

シンプルサブセット化と集約:

# Create subset for each date group 
date_group1 = subset(df, df$date %in% c(as.Date("2017-07-12"), 
             as.Date("2017-07-20"))) 
date_group2 = subset(df, df$date %in% c(as.Date("2017-07-20"), 
             as.Date("2017-07-27"))) 
date_group3 = subset(df, df$date %in% c(as.Date("2017-07-27"), 
             as.Date("2017-08-02"))) 

# Aggregate by treatment in each date_group 
aggregate(BLB ~ trt, data = date_group1, mean) 
aggregate(BLB ~ trt, data = date_group2, mean) 
aggregate(BLB ~ trt, data = date_group3, mean) 

# > aggregate(BLB ~ trt, data = date_group1, mean) 
# trt BLB 
# 1 1 28.375 
# 2 2 21.750 
# 3 3 27.875 
# 4 4 41.500 
# > aggregate(BLB ~ trt, data = date_group2, mean) 
# trt BLB 
# 1 1 23.875 
# 2 2 19.875 
# 3 3 21.625 
# 4 4 31.250 
# > aggregate(BLB ~ trt, data = date_group3, mean) 
# trt BLB 
# 1 1 22.375 
# 2 2 21.250 
# 3 3 17.875 
# 4 4 17.500 
+0

ありがとうございます!それは私のために働いた! – Obiratanea

+0

@ Obirataneaこれがあなたの質問に答えたと思う場合。他人に見えるように受け入れてください。 – useR

+0

useRどのように受け入れることができますか?ありがとう – Obiratanea

0

をあなたは、いくつかの日付の併用群を逃しました@ユーザー

(2017年7月20日、2017年8月2日、 (2017年7月12日、2017年8月2日)、 (2017年7月12日、2017年7月27日)があります)また。

+0

OPの間に "日付7/12と7/20 "と"日付7/20と7/27の間 "となります。だから私は、彼は2017-07-12から2017-07-27には2017-07-20が含まれていたので、彼は連続ペアがほしいと思った。 – useR

関連する問題