从txt文件中的循环中保存数据

时间:2016-08-09 14:25:52

标签: r loops dataframe save

我有一个数据框 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")  

}

我应该如何更改代码?

1 个答案:

答案 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等等。这样您就不会每次都覆盖该文件。