如何在R中粘贴字符串

如何在R中粘贴字符串,r,R,我想将4个字符串粘贴在一起,代码如下: urlstring<-"lee/" code<-read.csv("D:\\list.csv",sep="\n",head=FALSE) for(y in code){count<-1 while(count<3){ mydate<-Sys.Date()-count filename<-paste(urlstring,mydate,"&sy

我想将4个字符串粘贴在一起,代码如下:

urlstring<-"lee/"
code<-read.csv("D:\\list.csv",sep="\n",head=FALSE)
for(y in code){count<-1
           while(count<3){
             mydate<-Sys.Date()-count
             filename<-paste(urlstring,mydate,"&symbol=",y,sep="")
             print(filename)
             count<-count+1
           }
         }  
但我认为,结果应该是这样的,首先应该改变代码的值:

lee/date=2013-11-14&symbol=1    
lee/date=2013-11-13&symbol=1    
lee/date=2013-11-14&symbol=2    
lee/date=2013-11-13&symbol=2  

就像@mnel说的。对于
code=1:2
,您的代码将生成正确的结果。请注意,不需要嵌套的for while循环,矢量化解决方案使用的代码更少,而且通常更快:

code = rep(1:2, each = 2)
mydate = Sys.Date() - code
sprintf('lee/date=%s&symbol=%d', mydate, code)
[1] "lee/date=2013-11-14&symbol=1" "lee/date=2013-11-14&symbol=1"
[3] "lee/date=2013-11-13&symbol=2" "lee/date=2013-11-13&symbol=2"

此解决方案称为矢量化,因为当
sprintf
与矢量一起使用时,结果也是一个矢量,没有明确使用循环。

如果
code我们没有
list.csv
文件,我会得到您的“期望”结果。您需要向我们提供
code
对象或
csv
文件。否则,我们无法重现您的问题并帮助您找到答案。
code = rep(1:2, each = 2)
mydate = Sys.Date() - code
sprintf('lee/date=%s&symbol=%d', mydate, code)
[1] "lee/date=2013-11-14&symbol=1" "lee/date=2013-11-14&symbol=1"
[3] "lee/date=2013-11-13&symbol=2" "lee/date=2013-11-13&symbol=2"