2017-02-03 54 views
-2
paste("plot", "var","m",".pdf", sep = "_") 
#[1] "plot_var_m_.pdf" 

添加“_”在贴符号()不过,我想的plot_var_m.pdf输出(最后一个“_”是不是想) 我应该如何改变我的代码?我怎么能在头两个地方

回答

3
paste(paste("plot", "var","m", sep = "_"),"pdf", sep = ".") 
2

我们可以使用sprintf

sprintf("%s.pdf", paste("plot", "var", "m", sep="_")) 
#[1] "plot_var_m.pdf" 

另一种选择是sub

sub("_([^_]+)$", ".\\1", "plot_var_m_pdf") 
#[1] "plot_var_m.pdf" 
+4

打我 - 甚至'sprintf的( “%S_%S_%s%S”, “plot”,“var”,“m”,“。pdf”)' – thelatemail

1

另一种方式是,我们可以删除最后_这是额外的,而不是由

需要
sub("(.*)\\_", "\\1", paste("plot", "var","m",".pdf", sep = "_")) 
#[1] "plot_var_m.pdf" 
1

如果这些变量名是不变的,也可以只是做:

paste("plot_", "var_","m",".pdf", sep = "") 

或者,如果名称发生变化:

paste("plot","_","var","_","m",".pdf",sep="") 
0

另一种方法(在顶部增加另一层你通过代码来.删除所有不必要的_.模式):

gsub('_\\.', '\\.', paste("plot", "var","m",".pdf", sep = "_")) 
# [1] "plot_var_m.pdf"