R编程,使用变量命名输出文件

时间:2013-09-19 19:04:40

标签: r csv output

我想使用write.csv语句将输出定向到文件。我想写16个不同的输出文件,用扩展名1到16标记每个文件。

现在写的示例:

    trackfilenums=1:16
    for (i in trackfilenums){
       calculations etc
       write.csv(max.hsi, 'Severity_Index.csv', row.names=F)
    }

我想将输出csv文件标记为“Severity_Index_1.csv”,“Severity_Index_2.csv”等。不确定如何在R语言中执行此操作。

谢谢! 金佰利

3 个答案:

答案 0 :(得分:9)

您将需要使用粘贴命令:

write.csv(max.hsi, paste0("Severity_Index_", i,".csv"), row.names=F)

答案 1 :(得分:0)

有些人喜欢使用Name_01 Name_02等文件名而不是Name_1 Name_2等。例如,这可能会使字母顺序更合理:使用某些软件,否则,10将在1之后,20之后,等等

这种编号可以用sprintf实现:

sprintf("Severity_Index_%02d.csv", 7)

有趣的部分是%02d - 这表示i是一个整数值(实际上也可以使用%02i),至少需要2个位置,并且前导零将必要时使用。

# try also
sprintf("Severity_Index_%03d.csv", 7)
sprintf("Severity_Index_%2d.csv", 7)

答案 2 :(得分:0)

为了在这里添加其他答案,我发现清理pasted字符串以确保它对文件系统没问题也是一个好主意。为此,我有以下功能:

fsSafe <- function(string) {
 safeString <- gsub("[^[:alnum:]]", "_", string)
 safeString <- gsub("_+", "_", safeString)
 safeString
}

这简单地删除所有非字母和非数字字符并用下划线替换它们。