粘贴时覆盖数字序列

时间:2014-01-07 14:07:42

标签: string r escaping sequence

我正在尝试使用paste()创建名称以保存文件;此名称将部分由用于创建要保存的数据框的日期序列组成。

所以,我希望输出为"./Calculations (Raw)/ 1:2 - 3.csv"的字符串。

第一部分是指路径,它自己工作,.csv是附加的文件扩展名。

Road <- 1
Dates <- 1:2
paste("./Calculations (Raw)/", Dates , "-" , Road, ".csv")

问题是,该代码生成了两个字符串,打破了write.csv

如何覆盖数字序列?

2 个答案:

答案 0 :(得分:1)

paste是矢量化的。您需要collapsedates向量设置为长度1,您可以使用collapse paste参数进行paste("./Calculations (Raw)/", paste(Dates, collapse="-") , "-" , Road, ".csv") # [1] "./Calculations (Raw)/ 1-2 - 1 .csv"

paste

如果你不这样做,Dates会将所有向量扩展到最长向量的长度(在本例中为paste),然后只有sep个,这就是为什么你最终得到多个价值而不只是一个。

顺便说一下,您可能还想将paste参数更改为{{1}},这样就不会在文件名中留下空格。

答案 1 :(得分:0)

如果您想按原样打印1:2,请创建一个字符串,即"1:2"

Road <- 1
Dates <- "1:2"
paste("./Calculations (Raw)/", Dates , "-" , Road, ".csv")
# [1] "./Calculations (Raw)/ 1:2 - 1 .csv"