我有一个数据框 EEG :
Description Onset Run
Neut_inc 3.7416 Run1
Neut_inc 4.3636 Run1
Reward 4.48 Run2
Neut_inc 5.7416 Run2
Neut_inc 6.72 Run3
Neut_inc 7.7416 Run3
Reward 8.96 Run3
我的目标是为每次运行分配所有 Neut_inc 条件,并将它们保存在每个运行的单独.txt文件中,因此我读取之后的.txt文件会看起来像这样:
> Run1
Description Onset Run
Neut_inc 6.72 Run3
Neut_inc 7.7416 Run3
我编写了一个循环遍历所有运行的代码,但它只在最后一次运行时保存.txt文件。
for(run_number in unique(EEG$Run)){
run <- subset(EEG[which(EEG$Run == run_number),])
Neut_con <- subset(run[which(run$Run == run_number),], Description %in% c("Neut_con"))
write.table(Neut_con, file ="C:/Users/EXPERIMENTS/onsets/Neut_con.txt",row.names=FALSE, quote = FALSE, sep = "\t")
}
我应该如何更改代码?
答案 0 :(得分:1)
for(run_number in unique(EEG$Run)){
run <- subset(EEG[which(EEG$Run == run_number),])
Neut_con <- subset(run[which(run$Run == run_number),], Description %in% c("Neut_con"))
write.table(Neut_con, file =paste0("C:/Users/EXPERIMENTS/onsets/Neut_con_", run_number, ".txt"),row.names=FALSE, quote = FALSE, sep = "\t")
}
问题是你正在编写一个文件,然后在每次循环时覆盖它。通过添加paste0()函数,可以使文件名动态,以便拥有file1,file2,file3等等。这样您就不会每次都覆盖该文件。