2017-01-27 15 views
0

this postと同様に、データフレームをID(例:Month)でグループ化し、グループごとの平均と標準偏差を計算します。違いは、2つの列Rate 1Rate 2を平均とsdの両方で組み合わせることです。上記Monthによって、および毎月のためにグループ化されるべきであるIDごとに1つの列に集計/集計して平均とすべての列を計算する

Name  Month Rate1  Rate2 
Aira  1  12  23 
Aira  2  18  73 
Aira  3  19  45 
Ben  1  53  19 
Ben  2  22  87 

データフレームは、両方の列上mean率を計算します。たとえば、1月の平均は(12 + 23 + 53 + 19)/ 4 = 26.75でなければなりません。私はsdのアプローチが似ていると仮定します。

Month Mean_rate 
1  26.75 
2  50 
3  32 
+0

これらの値はどのように 'mean_rate'カラムに入っていますか?あなたの出力を説明できますか? –

+0

これは、両方の列の値を使用して各月の平均値にする必要があります。私は例を含めるために私の質問を更新しました。私は助けることを願っています – CGFoX

+0

ちょうど 'ライブラリ(dplyr); df%>%group_by(月)%>%summaryize(new =平均(Rate1 + Rate2)/ 2) '? – Sotos

答えて

1
## Input data frame 
df <- data.frame(Name=sample(letters,5),Month=c(1,2,3,1,2),Rate1=c(12,18,19,53,22),Rate2=c(23,73,45,19,87)) 

## Split data set on month 
df_splitted <- split(df[,3:4],df$Month) 

## Desired Output 
df_out <- data.frame(Month=as.numeric(names(df_splitted)), 
        Mean=sapply(lapply(df_splitted,unlist),mean), 
        sd=sapply(lapply(df_splitted,unlist),sd), 
        stringsAsFactors=FALSE) 
## Plot 
plot(df_out$Month, df_out$Mean, 
ylim=range(c(df_out$Mean-df_out$sd, df_out$Mean+df_out$sd)), 
pch=19, xlab="Measurements", ylab="Mean +/- SD", 
main="Scatter plot with std.dev error bars") 
arrows(df_out$Month, df_out$Mean-df_out$sd, df_out$Month, 
     df_out$Mean+df_out$sd, length=0.05, angle=90, code=3) 

## Explanation 
# Split the data frame into a list of data frame while keeping 
# rows with same month value together 
temp1 <- split(df[,3:4],df$Month) 

# Convert the list of data frames into list of vectors 
temp2 <- lapply(temp1,unlist) 

# For every vector in list it calculates the mean 
sapply(temp2,mean) 

ベクターの名前は、それが計算される月を表して得られたオブジェクトがベクトルです。

+0

これは機能しますが、結果のデータ型は何ですか?私はそれを使って散布図をerrorbarsで描画したい。 – CGFoX

+0

説明追加されました – anonR

+0

申し訳ありませんが、私はRが新しく、結果のデータを扱う際に問題が発生しています。手段をプロットしたいときは、x軸の月数を(数値として)抽出し、y軸の手段( 'names()'と 'unname()'を使って)を得なければなりませんでした。これを行う簡単な方法はありますか?または、私の質問のようなデータフレームに結果を格納することは可能ですか? – CGFoX

関連する問題