我想用动态文件名编写jpeg文件。
在plot_filename
中,我将字符串与其他变量的值连接起来创建
一个动态的文件名。
plot_filename = paste("Series T_all","/",Participant[i],"/",Part[i,2],"/",Part[i,3],".jpg")
plot_filename的输出只是另一个字符串:"Series T_all / 802 / 1 / 64 .jpg"
但是当我想在jpeg()
函数
jpeg(filename= plot_filename, width = 2000, height = 1500, quality = 100,
pointsize = 50)
plot(T1)
dev.off()
我收到以下错误:
Error in jpeg(filename = paste("Series T_all", "/", Participant[i], "/", :
unable to start jpeg() device
In addition: Warning messages:
1: In jpeg(filename = paste("Series T_all", "/", Participant[i], "/", :
unable to open file 'Series T_all / 802 / 1 / 64 .jpg' for writing
2: In jpeg(filename = paste("Series T_all", "/", Participant[i], "/", :
opening device failed
但是当我只使用普通字符串(没有粘贴功能)作为文件名时
name="plot_filename.jpg"
jpeg()
功能正常。
有人知道这是怎么回事吗?在我看来,在这两种情况下,你只是在jpeg()
函数中输入字符串,所以我不明白为什么一个而不是另一个可以工作。
由于
答案 0 :(得分:2)
声明
plot_filename = paste("Series T_all","/",Participant[i],"/",Part[i,2],"/",Part[i,3],".jpg")
将单个字符串与空格(默认值)分开,如输出示例中所示
"Series T_all / 802 / 1 / 64 .jpg"
但是,此路径不存在。 如果你使用
plot_filename = paste("Series T_all","/",Participant[i],"/",Part[i,2],"/",Part[i,3],".jpg", sep="")
这应该给出一个像
这样的字符串"Series T_all/802/1/64.jpg"
通常,sep =可以使用任何字符或字符串。因此,您也可以使用sep =“/”来分隔字符串,这样在连接字符串时就不必编写“/”。但是,这会影响Part [i,3]和“.jpg”的串联。如果你想以这种方式使用它,你可以在sep =“”的第二步中附加“.jpeg”。对于你的情况,我认为只使用sep =“”。
是可以的