2011-09-13 17 views
1

以下の場合、リクエストの間隔を取得してから、テキストの出力に1秒間隔、2秒間隔、3秒の間隔でリクエストが来る確率のヒストグラムが出力されます。秒間隔、10秒まで。確率を計算するときにすべてのデータを使用したいと思いますが、データの最初の10秒だけを見たいと思っています。R - 日付差の確率

私はMLでこれを助けようとしましたが、できませんでした。私はここで大きな助けを受けたので、私は助けを乱用していないと思います。これは私の最後の質問でなければなりません。どうもありがとう。

df <- read.csv(textConnection(' 
"SOURCE","REQUEST_DATE" 
"A","09/11/2011 09:28:48" 
"A","09/11/2011 09:28:47" 
"A","09/11/2011 09:15:42" 
"A","09/11/2011 09:15:41" 
"D","09/13/2011 09:06:53" 
"D","09/13/2011 09:06:52" 
"D","09/13/2011 08:56:55" 
"D","09/13/2011 08:56:52" 
"D","09/13/2011 08:55:43" 
"D","09/13/2011 08:39:07" 
'), stringsAsFactors=FALSE) 

そして、ここでは、私はAndrieの優れた助けを借りて、差分を取得しています方法は次のとおりです。だから、

df_diff <- ddply(df, .(SOURCE), summarize, TIME_DIFF=-unclass(diff(REQUEST_DATE))) 

、私は(作っ結果で)次

A 1 55% 
A 2 15% 
A 3 10% 
... 
A 10 5% 
D 1 10% 
D 2 12% 
D 3 15% 
... 
D 10 1% 
ような何かをしたいです例えば、ソースごとにトップ10だけが必要なので、

D 5013 2%などは切り捨てられます。

+1

は、あなたが 'hist'を読みましたか? 'freq = F'や' plot = F'のような引数を特に注意してください。 – Gregor

+0

df $ REQUEST_DATE < - as.POSIXct(df $ REQUEST_DATE、format = "%m /%d /%Y%H:%%")これは、次の人に同じエラーが発生しないように、 M:%S ")' –

+0

各SOURCEのデータフレームでhistを実行するにはどうすればよいですか? –

答えて

1

「テキストとしてヒストグラム」の部分が私を混乱されますが、私はあなたが実際に1秒休憩中に集計したい推測しています:

df_diff$tdiff_grp <- cut(df_diff$TIME_DIFF, 0:10, right=FALSE) 
with(df_diff, tapply(tdiff_grp, SOURCE, table)) 
$A 
[0,1) [1,2) [2,3) [3,4) [4,5) [5,6) [6,7) [7,8) [8,9) [9,10) 
    0  2  0  0  0  0  0  0  0  0 

$D 
[0,1) [1,2) [2,3) [3,4) [4,5) [5,6) [6,7) [7,8) [8,9) [9,10) 
    0  1  0  1  0  0  0  0  0  0 

あなたが実際に希望するものを明確にした後、それは簡単なことでしょうprop.tableを使用するか、またはこれらの合計で除算した後(100を掛けて)パーセンテージを生成します。

EDIT:簡単な関数は割合を返すことができます?

> tbls <- with(df_diff, tapply(tdiff_grp, SOURCE,table)) 
> lapply(tbls, function(x) 100*x/sum(x)) 
$A 
[0,1) [1,2) [2,3) [3,4) [4,5) [5,6) [6,7) [7,8) [8,9) [9,10) 
    0 100  0  0  0  0  0  0  0  0 

$D  
[0,1) [1,2) [2,3) [3,4) [4,5) [5,6) [6,7) [7,8) [8,9) [9,10) 
    0  50  0  50  0  0  0  0  0  0 
+0

あなたはあなたの推測で正しいです。そして、はい、私はパーセンテージが欲しかったです。どのようにそれを行うかについてはあまりよく分かりません。あなたの答えは正しいと思いますが、近いと思われます。どうもありがとう。 –