如何在 paste() 的前两个位置添加“_”符号
how can I add "_" symbol in paste() for at the first two place
paste("plot", "var","m",".pdf", sep = "_")
#[1] "plot_var_m_.pdf"
然而,我想要 plot_var_m.pdf
的输出(不需要最后一个“_”)
我应该如何更改我的代码?
paste(paste("plot", "var","m", sep = "_"),"pdf", sep = ".")
我们可以使用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"
另一种方法是我们可以删除最后一个 _
,这是额外的,
不需要
sub("(.*)\_", "\1", paste("plot", "var","m",".pdf", sep = "_"))
#[1] "plot_var_m.pdf"
如果这些变量名是常量,你也可以这样做:
paste("plot_", "var_","m",".pdf", sep = "")
或者,如果名称发生变化:
paste("plot","_","var","_","m",".pdf",sep="")
另一种方法(在代码之上添加另一层以删除 .
不需要的所有 _.
模式):
gsub('_\.', '\.', paste("plot", "var","m",".pdf", sep = "_"))
# [1] "plot_var_m.pdf"
paste("plot", "var","m",".pdf", sep = "_")
#[1] "plot_var_m_.pdf"
然而,我想要 plot_var_m.pdf
的输出(不需要最后一个“_”)
我应该如何更改我的代码?
paste(paste("plot", "var","m", sep = "_"),"pdf", sep = ".")
我们可以使用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"
另一种方法是我们可以删除最后一个 _
,这是额外的,
sub("(.*)\_", "\1", paste("plot", "var","m",".pdf", sep = "_"))
#[1] "plot_var_m.pdf"
如果这些变量名是常量,你也可以这样做:
paste("plot_", "var_","m",".pdf", sep = "")
或者,如果名称发生变化:
paste("plot","_","var","_","m",".pdf",sep="")
另一种方法(在代码之上添加另一层以删除 .
不需要的所有 _.
模式):
gsub('_\.', '\.', paste("plot", "var","m",".pdf", sep = "_"))
# [1] "plot_var_m.pdf"