2016-07-20 6 views
1

私は、2つの独立変数を持つ従属変数の基本的な時系列データの計算をプロットしようとしています。 3つの異なる音声雑音信号(IV_B)と組み合わせて運動タスク(IV_A)を行うことに応答して、DV =瞳孔拡張(複数の時点「T」において)。複数の列の平均を係数変数でプロットする方法

私は各時点(各T列の平均)で被験者間の平均膨張をプロットしたいと思います。

したがって、x軸は、IV_A(= 1)、IV_B(= 1)、IV_A(= 1)、IV_B(= 2)、およびIV_A(= 1)のための別の行を持つT1からT5になります。 IV_B(= 3)

どのように見えるかによって、IV_A(= 2)行が別のプロットに表示されることがあります。しかし、1つのグラフで簡単に視覚的に比較できるようになります。

私はデータを溶かす必要があるか、それを極端に長くする(約110Tの列がある)か、データフレームを再構築せずに望むものを達成する必要があるかどうかは疑問です。

データはこのような何かを見て:

Subject IV_A IV_B  T1  T2  T3 T4 T5 
1   1  1   0.2 0.3 0.5 0.6 0.3 
1   1  2   0.3 0.2 0.3 0.4 0.4 
1   1  3   0.2 0.4 0.5 0.2 0.3 
1   2  1   0.3 0.2 0.3 0.4 0.4 
1   2  2   0.2 0.3 0.5 0.6 0.3 
1   2  3   0.2 0.4 0.5 0.2 0.3 
2   1  1   0.2 0.3 0.5 0.6 0.3 
2   1  2   0.3 0.2 0.3 0.4 0.4 
2   1  3   0.2 0.4 0.5 0.2 0.3 
2   2  1   0.3 0.2 0.3 0.4 0.4 
2   2  2   0.2 0.3 0.5 0.6 0.3 
2   2  3   0.2 0.4 0.5 0.2 0.3 
3   1  1   0.2 0.3 0.5 0.6 0.3 
3   1  2   0.3 0.2 0.3 0.4 0.4 
3   1  3   0.2 0.4 0.5 0.2 0.3 
3   2  1   0.3 0.2 0.3 0.4 0.4 
3   2  2   0.2 0.3 0.5 0.6 0.3 
3   2  3   0.2 0.4 0.5 0.2 0.3 

編集:

残念ながら、私は次のように見える私の実際のデータフレームにeipi10のコード@に適応することはできませんが

Subject Trk_Y.N NsCond  X.3  X.2 X.1 X0 X1 X2 X3 
    1  N  Pink 0.3  0.4 0.6 0.4 0.8 0.6 0.6 
    1  N  Babble 0.3  0.4 0.6 0.4 0.8 0.6 0.6 
    1  N  Loss 0.3  0.4 0.6 0.4 0.8 0.6 0.6 
    1  Y  Pink 0.3  0.4 0.6 0.4 0.8 0.6 0.6 
    1  Y  Babble 0.3  0.4 0.6 0.4 0.8 0.6 0.6 
    1  Y  Loss 0.3  0.4 0.6 0.4 0.8 0.6 0.6 

Trk_Y.Nは、二次モータートラッキングタスク(「はい」または「いいえ」)の有無にかかわらずブロックです。 NsCondは、音声刺激が提示されるノイズのタイプです。

"Y"を "Tracking"と "N"を "No_Tracking"に置き換える方が良いでしょう。

私が試した:

test_data[test_data$Trk_Y.N == "Y",]$Trk_Y.N = "Tracking" 

をしかしエラーました:私はあなたのデータ構造を理解していない可能性があり

Warning message: 
In `[<-.factor`(`*tmp*`, iseq, value = c("Tracking", "Tracking", : 
    invalid factor level, NA generated 

答えて

2

をするので、これはあなたが考えていたものでない場合、私に知らせてください:

library(reshape2) 
library(ggplot2) 
library(dplyr) 

"メルト"データをロングフォーマットに変換します。

# Convert the two `IV` columns into a single column 
df.m = df %>% mutate(IV = paste0("A",IV_A,":","B",IV_B)) %>% select(-IV_A,-IV_B) 

# Melt to long format 
df.m = melt(df.m, id.var=c("Subject","IV"), variable.name="Time", value.name="Pupil_Dilation") 

head(df.m) 
Subject IV Time Pupil_Dilation 
1  1 A1:B1 T1   0.2 
2  1 A1:B2 T1   0.3 
3  1 A1:B3 T1   0.2 
4  1 A2:B1 T1   0.3 
5  1 A2:B2 T1   0.2 
6  1 A2:B3 T1   0.2 

は、今ではIVのレベルごとに各Timeポイントに対してPupil_Dilationの平均値を与える行をプロットすることができ、プラス95%信頼:これは私たちにそれぞれSubjectIVTimeに1つの観測を与えます間隔。サンプルデータでは、各レベルのTimeにはそれぞれIVの1つの測定値しかありませんので、95%信頼区間は以下のグラフ例には含まれていません。

pd=position_dodge(0.5) 

ggplot(df.m, aes(Time, Pupil_Dilation, colour=IV, group=IV)) + 
    stat_summary(fun.data=mean_cl_boot, geom="errorbar", width=0.1, position=pd) + 
    stat_summary(fun.y=mean, geom="line", position=pd) + 
    stat_summary(fun.y=mean, geom="point", position=pd) + 
    scale_y_continuous(limits=c(0, max(df.m$Pupil_Dilation))) + 
    theme_bw() 

enter image description here

:あなたは、実際のデータで複数の測定を持っている場合は、あなたが信頼区間が含まれるように以下のコードを使用することができます
関連する問題