我有一个大R文件,我将用它来分析十个数据文件,对应于我在研究中运行的十个主题。
我们假设十个数据文件名为sub1.csv
,sub2.csv
等。
R文件以csv
格式输出一些表格,以PDF
格式输出一些图表(总共约十或十五个输出)。
一旦我将所有输出都需要比较它们,所以将每个输出文件命名为主题后会很好,例如:
graph1_sub1.pdf
graph2_sub1.pdf
table1_sub1.csv
以及每个主题的所有文件。
我想知道,获取每个科目后命名的所有输出文件的最佳工作流程是什么?
我考虑过创建十个不同的R文件,但是我必须为每个主题重写输出文件名称(即使使用搜索功能也不需要花费很长时间)。我想知道是否有更好的方法,也许使用宏。
答案 0 :(得分:1)
根据您的要求,这是一个生成绘图并通过循环导出的示例:
for(s in unique(iris$Species)){
temp = iris[iris$Species == s,]
pdf(file = paste0(s,"_width_hist.pdf"))
hist(temp$Sepal.Width)
dev.off()
pdf(file = paste0(s,"_length_hist.pdf"))
hist(temp$Sepal.Length)
dev.off()
write.csv(x = temp, file = paste0(s,".csv"), row.names = FALSE)
}
这肯定比你正在做的更简单,但你可以使用这样的循环来生成文件。另一种选择是编写一个函数,从一个数据集生成所有所需的输出,并使用lapply
在所有数据集上运行它。