4

毎日何度も発生する 4 つの異なるイベント タイプ (A、B、C、D) を含むデータセットがあります。私はそのようなログを1年以上持っています。「EventType」属性は「要因」です。

たとえば、私のデータセットは次のようになります。

DateTime,EventType
6/5/2013 9:35,B
6/5/2013 9:35,A
6/5/2013 9:35,B
6/5/2013 9:36,D
6/5/2013 9:39,A
6/5/2013 9:40,B
7/5/2013 9:35,B
7/5/2013 9:35,A
7/5/2013 9:35,B
7/5/2013 9:36,D
7/5/2013 9:39,A
7/5/2013 9:40,B
8/5/2013 9:35,A
8/5/2013 9:35,A
8/5/2013 9:35,B
8/5/2013 9:36,B
8/5/2013 9:39,A
8/5/2013 9:40,B
9/5/2013 9:35,B
9/5/2013 9:35,B
9/5/2013 9:35,B
9/5/2013 9:36,D
9/5/2013 9:39,A
9/5/2013 9:40,A

すべてのイベント タイプの合計数を毎日プロットしたいと考えています。X 軸: 日時、Y 軸: カウント。

これを達成するために ddply を試すのが好きですが、どうすればよいかよくわかりません。これは私がやったことです:

data <- read.csv("C:/analytics/mydata.csv", sep=",", header=TRUE)
k <- ddply(data, "data$DateTime", function(x) count = nrow(x))

上記により、次の出力が得られます。

       data$DateTime V1
1  6/5/2013 9:35,A  1
2  6/5/2013 9:35,B  2
3  6/5/2013 9:36,D  1
4  6/5/2013 9:39,A  1
5  6/5/2013 9:40,B  1
6  7/5/2013 9:35,A  1
7  7/5/2013 9:35,B  2
8  7/5/2013 9:36,D  1
9  7/5/2013 9:39,A  1
10 7/5/2013 9:40,B  1
11 8/5/2013 9:35,A  2
12 8/5/2013 9:35,B  1
13 8/5/2013 9:36,B  1
14 8/5/2013 9:39,A  1
15 8/5/2013 9:40,B  1
16 9/5/2013 9:35,B  3
17 9/5/2013 9:36,D  1
18 9/5/2013 9:39,A  1
19 9/5/2013 9:40,A  1

私の質問: 日別または月別のカウントを取得したい場合、どうすれば同じ動作を実現できますか? lubridate を使用して日または月を取得したいのですが、その後、それを使用してグループ化し、その後カウントを取得する方法がわかりません。

何かのようなものk <- ddply(data, "day(data$EventType)", function(x) count = nrow(x))

それができたら、うまくプロットできると信じています。ご意見をお待ちしております。

ありがとう。

4

1 に答える 1

5

これを行うにはいくつかの方法があります。Date/Time主なことは、クラスで作業していることを確認することです。時間を 1 日に丸める方法がありPOSIX、多数の集計関数を使用して 1 日あたりのイベントをカウントできます。

#  Make sure your character strings represent date and times and then round to days
df[,1]<- as.POSIXct(df[,1],format="%d/%m/%Y %H:%M")
df$Day <- as.character( round(df[,1] , "day" ) )

当初の意図通りに使用ddply...

require(plyr)
ddply( df , .(Day) , summarise , Count = length(EventType) )
Day Count
1 2013-05-06     6
2 2013-05-07     6
3 2013-05-08     6
4 2013-05-09     6

解決base策....

aggregate( df , by = list(df$Day) , length )
     Group.1 DateTime EventType Day
1 2013-05-06        6         6   6
2 2013-05-07        6         6   6
3 2013-05-08        6         6   6
4 2013-05-09        6         6   6
于 2013-06-18T21:48:12.313 に答える