2017-06-07 5 views
0

長整数型のデータフレームを作成するために関数集計を使用しましたが、同僚はExcelでそれを処理する必要があります。私はワイドフォーマットに変換するのが難しいと思っています。私は、列を "可変"と "タイプ"を、それらが含むメンバー(Frontal、Parietal and Occipital)と(alpha、beta、gamma、deltaとtheta)のそれぞれの列にする必要があります。集計出力をワイドフォーマットに変換する

dput(head(aggdata)) 
structure(list(Time = c(1, 2, 3, 4, 5, 6), Type = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("alpha", "beta", "gamma", "delta", 
"theta"), class = c("ordered", "factor")), Group = structure(c(1L, 
1L, 1L, 1L, 1L, 1L), .Label = c("C", "N"), class = "factor"), 
    variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = c("Frontal", 
    "Parietal", "Occipital"), class = "factor"), Condition = c(1, 
    1, 1, 1, 1, 1), value = c(0.0947259533333333, 0.0489575420666667, 
    0.0686301660666667, 0.0754647909333333, 0.0708219834666667, 
    0.0644100006)), .Names = c("Time", "Type", "Group", "variable", 
"Condition", "value"), row.names = c(NA, 6L), class = "data.frame") 
+0

予想されるotuputを表示できますか?あなたは 'ライブラリ(data.table); dcast(setDT(aggdata)、Time + Group〜Type +変数、value.var =" value ")を意味しましたか? – akrun

答えて

1

reshape2パッケージ、およびdcastとmelt機能を確認したい場合があります。 あなたがここに持っているものは、あなたがキャストしたい素敵な溶融データセットです。

サンプルデータを変更するには、いくつかの変数を渡す必要はありません。 、あなたが普及する変数をPUR右側に、あなたはあなたが集計したいデータを置く左側

dcast(agg_data, Time + Type + Group + Condition ~ variable) 

# Time Type Group Condition Frontal Parietal 
# 1 1 alpha  C   1 0.09472595 0.06863017 
# 2 2 alpha  C   1 0.04895754   NA 
# 3 3 alpha  C   1 0.06863017   NA 
# 4 4 alpha  C   1 0.07546479   NA 
# 5 5 alpha  C   1 0.07082198   NA 
# 6 6 alpha  C   1 0.06441000   NA 

agg_data <- rbind(agg_data,head(agg_data,1)) 
agg_data$variable[7] <- "Parietal" 
agg_data$value[7] <- 0.0686301660666667 
agg_data 

# Time Type Group variable Condition  value 
# 1 1 alpha  C Frontal   1 0.09472595 
# 2 2 alpha  C Frontal   1 0.04895754 
# 3 3 alpha  C Frontal   1 0.06863017 
# 4 4 alpha  C Frontal   1 0.07546479 
# 5 5 alpha  C Frontal   1 0.07082198 
# 6 6 alpha  C Frontal   1 0.06441000 
# 7 1 alpha  C Parietal   1 0.06863017 

、ここでは、私はあなたが欲しいと思うのラインです右側に変数の合計を入れていくつかの変数に渡すことができます。例えば、

dcast(agg_data, Time + Group + Condition ~ variable + Type) 

# Time Group Condition Frontal_alpha Parietal_alpha 
# 1 1  C   1 0.09472595  0.06863017 
# 2 2  C   1 0.04895754    NA 
# 3 3  C   1 0.06863017    NA 
# 4 4  C   1 0.07546479    NA 
# 5 5  C   1 0.07082198    NA 
# 6 6  C   1 0.06441000    NA 
+0

魅力のように動作します。構文も素敵でシンプルに見えます:-) – HCAI

関連する問題