【发布时间】:2019-12-08 19:02:27
【问题描述】:
尊敬的 Stack Overflow 社区,
我想使用不同的 .csv 文件(每个参与者 1 个)执行 4 个参与者的循环。 对于每个主题,我想生成一个条形图,在 x 轴上依赖“性别(男性,女性)”,在 y 轴上依赖“正确答案的比例”)。
这里显示了每个 .csv 文件在打开时的显示方式: 我想给因子 c("observernumber","trial","numstim","memo","sex","corResp","curresp","success") 加上名字
1 1 284 high female a a 1
2 2 190 low male l l 1
3 3 224 low male l l 1
4 4 218 high male l l 1
5 5 137 high male l l 1
6 6 45 high female a a 1
7 7 87 high female a a 1
8 8 249 high female a a 1
9 9 27 low male l l 1
10 10 53 low male l l 1
11 11 92 low female a a 1
12 12 283 low male l l 1
我首先为每个参与者提供 .csv 名称:
obsNames = c("1_gender","2_gender","3_gender","4_gender")
nsubj <- length(obsNames)
我预先分配了一个读取 obsNames 的矩阵:
allData = c()
for (i in 1:obsNames) {
dat = read.csv(sprintf("%s_gender.csv", obsNames[i]), header = FALSE, sep = ";")
obsIndex = rep(i,nrow(dat))
allData = rbind(allData, cbind(obsIndex,dat))
}
我列出了我拥有的所有因素:
names(allData) = c("subj", "trial", "sex", "success")
我想为 4 个当前主题中的每一个绘制一个 .tiff 文件,该文件必须显示 a)b)c):
a) 当前观察者的名字作为标题
paste(obsNames[curSubj], ".tiff", sep = "")
b) x 轴上的“性别(男性,女性)”因子
"sex"
c)在 y 轴上带有“正确答案的比例”因子
"success"
我想为每个参与者制作一个箱线图,我应该如何完成这个脚本? 如何命名 x 和 y 值?:
for(curSubj in 1:nsubj){
tiff(file = paste(obsNames[curSubj], ".tiff", sep = ""))
barCenters = barplot(
main = paste(obsNames[curSubj],".tiff",sep = ""),
yaxt = "n",
ylab = "Proportion Correct",
xlab = "Gender"
)
mgp.axis(labels = c("Female","Male"))
dev.off()
}
使用有错误???
curSubj
【问题讨论】:
-
您是否收到错误消息?为什么你说它不起作用?
-
您可以简化并执行
for(curSubj in obsNames)并从循环中删除obsNames,但我认为这不是 amin 问题。 -
你能把
dput(allData)的输出贴在问题里吗,或者如果dput(head(allData, 20))的输出太大了,请? -
能否请您清理一下代码格式(例如添加缩进),以便您的代码更具可读性。还要删除与手头问题无关的任何内容(例如颜色,从您所说的来看,这不是您遇到的问题)。
-
希望代码和问题在新的编辑中更加清晰