在R語言中 paste 是一個很有用的字符串處理函數,可以連接不同類型的變量及常量。
函數paste的一般使用格式為:
paste(..., sep = " ", collapse = NULL)
- 1
- 1
其中…表示一個或多個R可以被轉化為字符型的對象;參數sep表示分隔符,默認為空格;參數collapse可選,如果不指定值,那么函數paste的返回值是自變量之間通過sep指定的分隔符連接后得到的一個字符型向量;如果為其指定了特定的值,那么自變量連接后的字符型向量會再被連接成一個字符串,之間通過collapse的值分隔。下面用具體的例子說明各參數的作用:
paste函數把它的自變量連成一個字符串,中間用空格分開,如
> paste("Hello","world")
- 1
- 1
返回由空格連接的字符串。
[1] "Hello world"
- 1
- 1
連接的自變量可以是向量,這時各對應元素連接起來,長度不相同時較短的向量被重復使用。如
> paste("A", 1:6, sep = "")
- 1
- 1
注意這里返回的是由多個值組成的向量。
[1] "A1" "A2" "A3" "A4" "A5" "A6"
- 1
- 1
如果希望將一個向量中所有字符連接在一起且中間用逗號分隔,使用paste(x,collapse)即可,結果只是返回一個元素。或者可以使用函數toString來實現(但是toString函數本來就是利用paste來實現的,所以最好還是使用paste)。
> paste(letters[1:6],collapse=",")
- 1
- 1
這里就把本來應該成為一個向量的連接成了一個字符串(也就是多個元素的連接)
[1] "a,b,c,d,e,f"
- 1
- 1
同時使用了參數seq與collapse。
> paste("A", 1:6, sep = "",collapse=",")
- 1
- 1
合理利用這兩個函數組合出自己想要的效果。
[1] "A1,A2,A3,A4,A5,A6"
- 1
- 1
如果只是希望向量x中每一個元素和特定的字符(如下划線_)連接,使用paste(x,seq=)即可,如
> paste(letters[1:4],seq='_')
- 1
- 1
[1] "a _" "b _" "c _" "d _"
- 1
- 1
以上。
