2016-09-24 24 views
0

私は、table with a timestamp and some dataとしてMySQLデータベースに分析データを保存しています。このデータを(時間数の範囲内でグループ化して)管理コンソール、およびデータを選択し、Rスクリプトでそれをダウンサンプリングするために、より効率的である場合、またはMySQLまたはRのダウンサンプリング分析データ

GROUP BY UNIX_TIMESTAMP(timestamp) DIV <some time> 

を使用して、データベース層の上にそれを行うには良いだろうかと思いまして。その他のヒントもありがとうございます。

+2

これは通常、より効率的にデータベースで実行されるだろう。すべてのデータを返すと、データベースのオーバーヘッド(大量のデータを返す)、トランスポート層(大量のデータを転送する)、およびR(大量のデータを管理する)が発生します。 –

+0

'dplyr'はこれを行うmysqlバックエンドを持っていませんか? – Jeroen

答えて

0

あなたがdplyrを使用できる場合は、次のようなものでそれを行うことができます:

library(dplyr) 

yay <- 
    # Specify username and password in my.cnf 
    src_mysql(host = "blah.com") %>% 
    tbl("some_table") %>% 
    # You will need to compute a grouping variable 
    mutate(group = unix_timestamp(timestamp)) %>% 
    group_by(group) %>% 
    # This will return the number of rows in each group 
    summarise(n = n()) %>% 
    # This will execute the query and return a data.frame 
    collect