jpeg()函数与R中的paste()函数不兼容?

时间:2013-10-10 14:14:44

标签: r jpeg paste

我想用动态文件名编写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()函数中输入字符串,所以我不明白为什么一个而不是另一个可以工作。

由于

1 个答案:

答案 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 =“”。

是可以的