2017-04-13 15 views
0

平均演算子を使用してデータセットの行を結合しようとしています。 は基本的に、私はデータは、私がRでこれを行うことができますどのようにRで同じ名前の行をマージするにはどうすればよいですか?

1. ID MEASUREMENT  2. ID MEASURE 
    A  20    A  22.5 
    B  30    B  30 
    A  25    . 
    .      . 
    .      . 

(下記参照)2セットのデータに1をセットに変換したいですか?

私がここに示した例とは対照的に、私のデータセットは本当に大きく、私はデータセットを調べることができません。

私の考えは、データセットを注文し、各IDごとに測定値を分離し、各平均値を見つけてデータを再編成することです。しかし、これは非常に時間がかかるでしょう。 誰かが直接コードやforループを手助けできるのであれば、本当に感謝します。

答えて

1

このコードはあなたのためにできるはずです。唯一の基本R機能付き

dat = data.frame(ID = c("A","A","A","B","B","C"), MEASUREMENT = c(1:3,61,13,7)) 

:ちょうど私は一例であり、ベースR.に

データをこれを行う方法にスローされますもう少し完全なものにする

library(data.table) 
setDT(dat) 
dat = dat[ , .(MEASURE = mean(MEASUREMENT)), by = .(ID)] 

:data.tableで

aggregate(MEASUREMENT ~ ID, FUN = mean, dat) 
    ID MEASUREMENT 
1 A   2 
2 B   37 
3 C   7 

あなたはまた、dplyrで簡単に行うことができます

library(data.table) 
setDT(dat) 
dat = dat[ , .(MEASURE = mean(MEASUREMENT)), by = .(ID)] 
> dat 
    ID MEASURE 
1: A  2 
2: B  37 
3: C  7 
+0

のおかげであると仮定すると、私が通じました –

2

は、あなたのデータはdf

library(dplyr) 

df <- df %>% 
    group_by(ID) %>% 
    summarize(MEASURE = mean(MEASUREMENT)) 
関連する問題