2017-02-03 101 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"