首页 文章

连接字符串/字符的向量

提问于
浏览
229

如果我有一个类型字符的向量,我如何将值连接成字符串?这是我用paste()做的方法:

sdata = c('a', 'b', 'c')
paste(sdata[1], sdata[2], sdata[3], sep ='')

屈服 "abc" .

但是,当然,这只有在我提前了解sdata的长度时才有效 .

5 回答

  • 34

    Matt Turner的回答绝对是正确的答案 . 但是,根据Ken Williams的回答,你也可以这样做:

    capture.output(cat(sdata, sep=""))
    
  • 4

    尝试在粘贴函数中使用空的 collapse 参数:

    paste(sdata, collapse = '')

    感谢http://twitter.com/onelinetips/status/7491806343

  • 5

    马特的回答绝对是正确的答案 . 然而,这里是一个替代解决方案的漫画救济目的:

    do.call(paste, c(as.list(sdata), sep = ""))
    
  • 397

    您可以将 stri_paste 函数与 stringi 参数中的 collapse 参数一起使用,如下所示:

    stri_paste(letters, collapse='')
    ## [1] "abcdefghijklmnopqrstuvwxyz"
    

    还有一些基准:

    require(microbenchmark)
    test <- stri_rand_lipsum(100)
    microbenchmark(stri_paste(test, collapse=''), paste(test,collapse=''), do.call(paste, c(as.list(test), sep="")))
    Unit: microseconds
                                          expr     min       lq     mean   median       uq     max neval
               stri_paste(test, collapse = "") 137.477 139.6040 155.8157 148.5810 163.5375 226.171   100
                    paste(test, collapse = "") 404.139 406.4100 446.0270 432.3250 442.9825 723.793   100
    do.call(paste, c(as.list(test), sep = "")) 216.937 226.0265 251.6779 237.3945 264.8935 405.989   100
    
  • 3

    对于 sdata

    gsub(", ","",toString(sdata))
    

    对于整数向量:

    gsub(", ","",toString(c(1:10)))
    

相关问题