我在 R 中有一个具有这种格式的大型数据框:
"SubjID" "HR" "IBI" "Stimulus" "Status"
"S1" 75.98 790 1 1
"S1" 75.95 791 1 2
"S1" 65.7 918 1 3
"S1" 59.63 100 1 4
"S1" 59.44 101 1 5
"S1" 59.62 101 2 1
"S1" 63.85 943 2 2
"S1" 60.75 992 2 3
"S1" 59.62 101 2 4
"S1" 61.68 974 2 5
"S2" 65.21 921 1 1
"S2" 59.23 101 1 2
"S2" 61.23 979 1 3
"S2" 70.8 849 1 4
"S2" 74.21 809 1 4
我想为状态列的每个值绘制“HR”列的平均值。
我编写了以下 R 代码,在其中创建数据子集(通过“状态”的不同值)并绘制它:
numberOfSeconds <- 8;
for(stimNumber in 1:40) {
stimulus2plot <- subset(resampledDataFile, Stimulus == stimNumber & Status <= numberOfSeconds, select=c(SubjID, HR, IBI, Stimulus, Status))
plot(stimulus2plot$HR~stimulus2plot$Status, xlab="",ylab="")
lines(stimulus2plot$HR~stimulus2plot$Status, xlab="",ylab="")
}
从而获得类似于以下的图:
每个“刺激”都有一个情节。在每个图的 X 轴上,我有“状态”列,在 YI 上,每个“SubjID”都有一个“HR”值。差不多好了...
但是,我最终想要获得的是每个 X 值都有一个 Y 数据点。即 Y 应该是平均值(HR 列的平均值),类似于下图:
如何做到这一点?如果每个数据点中的标准偏差也显示为误差线,那就太好了。
在此先感谢您的帮助。