R語言paste應用


1、字符串連接:paste(..., sep = " ", collapse = NULL)     sep表示分隔符,默認為空格。collapse表示如果不指定值,那么函數paste的返回值是自變量之間通過sep指定的分隔符連接后得到的一個字符型向量;如果為其指定了特定的值,那么自變量連接后的字符型向量會再被連接成一個字符串,之間通過collapse的值分隔

(1) paste函數把它的自變量連成一個字符串,中間用空格分開,如

> paste("Hello","world")
         [1] "Hello world"

(2) 連接的自變量可以是向量,這時各對應元素連接起來,長度不相同時較短的向量被重復使用。如

> paste("A", 1:6, sep = "")
[1] "A1" "A2" "A3" "A4" "A5" "A6"
(3) 如果希望將一個向量中所有字符連接在一起且中間用逗號分隔,使用paste(x,collapse)即可,結果只是返回一個元素。

> paste(letters[1:6],collapse=",")
[1] "a,b,c,d,e,f"

(4) 同時使用了參數seq與collapse

> paste("A", 1:6, sep = "",collapse=",")
[1] "A1,A2,A3,A4,A5,A6"

(5)如果只是希望向量x中每一個元素和特定的字符(如下划線_)連接,使用paste(x,seq=)即可,如

> paste(letters[1:4],seq='_')
[1] "a _" "b _" "c _" "d _"

2、應用方面,以上說的還是paste的基礎常用方式,下面說的是我經常會用到的paste用法,與學習的時候不同,paste其實用法挺靈活的。

(1) R讀取數據的時候有時會讀取多個文件如:a.csv b.csv c.csv,d.csv........等,這時可以用到paste來實現。

> path <- 'E:\\mytestdata\\'

> setwd(path)

> dir.data<-dir(path)

> dir.data
[1] "a.csv" "b.csv" "c.csv" "d.csv"

>for(i in 1:length(dir.data)){
>data<- read.csv(paste(path,dir.data[i],sep=''))
>}

循環讀取文件,data分別表示  "a.csv" "b.csv" "c.csv" "d.csv",可以在循環里對每個文件進行操作

(2)R保存文件的時候也可以用paste

write.csv(a.csv,file=paste(path,'data.csv'))   這里不再多舉例子

(3) paste也可以連接sql語句

paste('select * from student where date =','date',sep=" ")  這樣的好處是可以把date設置為外來參數,進行傳參。

總結:雖然列舉了不同的用法,但是本質就是字符串連接,只不過在實際中用法比較靈活,需要多加練習,用多了會覺得非常好用。

 2、使用paste0連接多個字符串

> date1 <- 20150101
> date2 <- 20151231
> paste0("select * from sales where stat_date between ",date1," and ",date2)
[1] "select * from sales where stat_date between 20150101 and 20151231"

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM