2017-03-08 9 views
0

おそらく私は何か非常にシンプルな質問をしていますが、私はRで新しく、フォーラムではこれと似たようなものは実際に見つけられませんでした。連続時間の長さに基づいてデータを分類する

私はこのようになり、データフレームを持っている:

   bigDData.dt bigDData.a_temp bigDData.diff bigDData.V33 
3148 2009-03-31 09:50:00   8.45  6.071806   yes 
3149 2009-03-31 09:55:00   9.31  6.802639   yes 
3150 2009-03-31 10:00:00   10.55  7.898750   yes 
3151 2009-03-31 10:05:00   11.16  8.357361   yes 
3152 2009-03-31 10:10:00   11.37  8.413889   yes 
3153 2009-03-31 10:15:00   11.51  8.398750   yes 
3154 2009-03-31 10:20:00   11.77  8.499306   yes 
3155 2009-03-31 10:25:00   12.42  8.979583   yes 
3156 2009-03-31 10:30:00   12.76  9.144722   yes 
3412 2009-04-01 07:50:00   7.33  6.233472   yes 
3413 2009-04-01 07:55:00   7.65  6.455972   yes 
3414 2009-04-01 08:00:00   7.97  6.676250   yes 
3415 2009-04-01 08:05:00   8.12  6.724583   yes 
3416 2009-04-01 08:10:00   8.40  6.899028   yes 

私は連続したデータの長さを知ることにintrestedてよ。たとえば、2009-04-01のデータの所要時間は20分であることを知りたいと思います。次に、連続するデータの長さに基づいてデータを分類したいと思います。私はforとループを試しましたが、内部にはifという条件がありましたが、それを良い方法で公式化することはできません。たぶん、これを行うことができるRパッケージ/機能はありますか?あるいは、あなたの誰かが、ループを適切な方法で書く方法を考えているのでしょうか?

ありがとうございました!

library(dplyr); library(padr) 
    df %>% thicken("day", col = "day") %>% 
    group_by(day) %>% 
    summarise(duration = max(bigDData.dt) - min(bigDData.dt)) 

これはあなたのコラムbigDData.dtがクラスPOSIXctまたはPOSIXltであることを前提としていますdfがデータフレームであるpadrの助けを借り、これは次のようになりdplyrパッケージと

+0

希望する出力は何ですか? – lukeA

答えて

0

、。

+0

ありがとう、それは実際にはかなり役に立ちました。私は実際に出力が行6のように1日に30時間ということが起こるのは本当にわかりません。 "2009-06-29 30.000000時間" –

+0

あなたのサンプルデータセットには2009-06-29はありません。問題が何であるかを把握していない。私は上記を実行すると40分20分を取得します。 – Edwin

関連する問題