2017-07-27 3 views
0

毎分のタイムスタンプを含む異なるセンサーからのデータを取得します。 私のデータを視覚化するために、10個の値を平均で要約したいと思います。R - 毎n回の平均値データフレーム、数値およびPOSIXの列からの値

私のデータは次のようになります。

Temp Humidity Pressure   Time 
1   21.9    66.1 1007.76 2017-07-24 18:13:02 
2   21.9    66.2 1007.76 2017-07-24 18:14:05 
3   21.9    66.2 1007.76 2017-07-24 18:15:02 
4   22.0    65.8 1007.76 2017-07-24 18:16:02 
5   22.0    66.1 1007.76 2017-07-24 18:17:02 
6   22.0    66.2 1007.76 2017-07-24 18:18:02 
7   22.0    66.1 1007.76 2017-07-24 18:19:02 
8   22.0    66.3 1007.76 2017-07-24 18:20:02 
9   22.0    66.3 1007.76 2017-07-24 18:21:02 
10   22.0    66.3 1007.76 2017-07-24 18:22:02 
11   22.0    66.0 1007.76 2017-07-24 18:23:02 


# [...] about 1700 rows 

私は作業コードを持っていますが、数値のみcolsのため:

aggregate(df,list(rep(1:(nrow(df)%/%n+1),each=n,len=nrow(df))),mean)[-1]; 

私は最初の3つの列のために欲しいものを私に与えることを、どの数値ベクトルです。しかし、POSIXltの時間は、すべての行に "2017-07-24 18:17:32"と表示されます。 誰でもこの解決策を知っていますか?時間の手段を別に取らなければならないのであれば、問題はありません。

あなたはすべての10行を意味取得するために列グループと group_byこの1と summarizeすべての列を作ることができ
+3

使用 'dput(ヘッド(DF、10))'の代わりに、あなたが持っているテーブル。 – Masoud

+0

...または 'dput(droplet(head(df、11)))'のようになります。 – Gregor

+0

データのクラスが 'POSIXt'の場合は動作するはずです。あなたのデータの実際の構造を見ることなく、私たちはあなたを助けることができません。 – Masoud

答えて

0

:あなたのデータを提示する

n <- nrow(df) 
df$group <- rep(seq_len(ceiling(n/10)), each = 10)[seq_len(n)] 

library(dplyr) 
df %>% 
    group_by(group) %>% 
    summarise_all(mean) %>% 
    select(-group) 
関連する問題