2017-09-28 13 views
0

さまざまなデータフレームの中央値、分散、標準偏差などの説明的な統計を計算する必要があります。約300のすべてのデータフレームは同じ量の変数を持ちますが、観測値の数は値と同じように1つずつ異なります。私はまだこのループを生成することができませんでしたので、私は最初に単一のデータフレームで実行しようとしています。ループは統計を生成し、データフレームを常に7つの観測のグループに分割します。R:データフレームをグループに分割して統計を適用する方法

私は基本的な統計を行いますループを生成するために働いている最初のデータフレームはこれです:

# A tibble: 363 x 4 
      Day Location Flow Qty 
     <dttm> <chr> <dbl> <dbl> 
1 2014-03-03 ABC_100 4948 1637.10 
2 2014-03-04 ABC_100 3916 778.70 
3 2014-03-05 ABC_100 4471 748.40 
4 2014-03-06 ABC_100 5318 888.50 
5 2014-03-07 ABC_100 5888 1607.10 
6 2014-03-08 ABC_100 7490 2515.60 
7 2014-03-09 ABC_100 4306 1569.22 
8 2014-03-10 ABC_100 4939 1287.50 
9 2014-03-11 ABC_100 4988 1547.00 
10 2014-03-12 ABC_100 4801 1407.20 
# ... with 353 more rows 

これは私が書くことができたコードです。私はそれが必要です: 1 - それは7つの観測のグループにデータフレームを分割します。 2 - 基本情報を生成する統計情報:各グループのメジアン、分散、平均値、標準偏差。 3 - 私はそれを動作させることができないと私はそれを解決するためにどのように私を表示する方法を見つけることができないすべてのこれらの統計

n <- 1 
meanIBI100 <- aggregate(teste, list(rep(1:(nrow(teste) %% n+1), each = n, len = nrow(teste))), median, sd, var)[-1] 

を収集し、新たなデータフレームにこのデータを格納します。誰かが助けることができれば、ありがとう!

誰かがこのデータフレームだけでなく、私が持っているすべてのデータフレームを実行する方法を知っていても、それは別のループ内のループのケースだと私は信じています。

答えて

0

あなたは週によってグループにしようとしているので、あなたは7のグループをしたい場合、あなたは禁止@Falves、またDFはあなたのdata.frameこと

library(data.table) 
DT <- data.table(DF) 

DT 

# this will get you your mean and SD's for each column 
DT[, sapply(.SD, function(x) list(mean=mean(x), sd=sd(x)))] 

# If we want to add names to the columns 
wide <- setnames(DT[, sapply(.SD, function(x) list(mean=mean(x), sd=sd(x))], 
c("ID", sapply(names(DT)[-1], paste0, c(".men", ".SD")))) 

リファレンス リカルドSaporta Compute mean and standard deviation by group for multiple variables in a data.frame

+0

をしましょうあなたの 'data.table'の3番目の" index "に' by = week(Day) 'を使います。 – Renu

+0

応答ありがとうございました、アブドル!しかし、統計を生成する前に、私は実際にデータフレームを7つの観測値でグループに分け、それぞれのグループの統計を生成する必要があります。 – Falves

関連する問題