R語言拼接字符串_paste的用法說明
R中自帶的字符串連接的函數(shù)是paste。
先來看一下官方文檔里對paste用法的解釋:
基本格式:
paste (…, sep = " ", collapse = NULL)
其中,…表示對象,可以有多個,中間用逗號隔開。
sep表示分隔符,默認(rèn)為空格。
collapse表示如果不指定值,那么函數(shù)paste的返回值是…的對象之間通過sep指定的分隔符連接后得到的一個字符型向量;如果為其指定了特定的值,那么自變量連接后的字符型向量會再被連接成一個字符串,之間通過collapse的值分隔。
舉例來說
paste("Hello", "xiaoming", sep = "-")
輸出結(jié)果:
"Hello-xiaoming"
而如果其中某個對象是向量,會有類似于“循環(huán)連接”的效果。
paste("Hello", 1:2, sep = "-")
輸出結(jié)果:
"Hello-1" "Hello-2"
如果想讓上面的變成字符串而不是向量,只需要設(shè)置collapse。
paste("Hello", 1:2, sep = "-", collapse = ",")
輸出結(jié)果:
"Hello-1,Hello-2"
補充:[R字符串] 字符串長度、分割、拼接、截取、替代、匹配和大小寫替換
獲取字符串長度:nchar()
字符串分割:strsplit()
字符串拼接:paste()
字符串截?。簊ubstr()
字符串替代:gsub() chartr() sub()
字符串匹配:grep()
大小寫替換:toupper() tolower()
1. 獲取字符串長度
nchar()能夠獲取字符串的長度,它也支持字符串向量操作。注意它和length()的結(jié)果是有區(qū)別的。
fruit <- 'apple orange grape banana' nchar(fruit) length(fruit) #元素個數(shù)為1 [1] 1
2. 字符串分割
strsplit()負責(zé)將字符串按照某種分割形式將其進行劃分,需要設(shè)定分隔符。下面我們是用空格來作為
分隔符將fruit分為四個元素。
> strsplit(fruit,split=' ') [[1]] [1] "apple" "orange" "grape" "banana" #list結(jié)構(gòu) > fruitvec <- unlist(strsplit(fruit,split=' ')) > fruitvec [1] "apple" "orange" "grape" "banana" #轉(zhuǎn)化為向量
3. 字符串拼接
paste()負責(zé)將若干個字符串相連結(jié),返回成單獨的字符串。其優(yōu)點在于,就算有的處理對象不是字符
型也能自動轉(zhuǎn)為字符型。另一個相似的函數(shù)paste0是設(shè)置無需分隔符的拼接。
paste(fruitvec,collapse=',') #逗號作為分隔符 [1] "apple,orange,grape,banana"
4. 字符串截取
substr()能對給定的字符串對象取出子集,其參數(shù)是子集所處的起始和終止位置。
substr(fruit, 1,5) [1] "apple"
5. 字符串替代
chartr是字母替換,不是字符串替換。
gsub()負責(zé)搜索字符串的特定表達式,并用新的內(nèi)容加以替代。
sub()函數(shù)類似gsub(),但只替代第一個。
> chartr('world','bear',a) #字母替換 Error in chartr("world", "bear", a) : 'old' is longer than 'new' #字符長度要求一致 > chartr('world','beara',a) [1] "herre beara" > x<-'i love you' > chartr('you','she',x) #實際是字母替換,不是字符串替換 [1] "i lhve she" > a<-'i love you, do you love me ?' > sub('you','she', a) #只替換第一個參數(shù)you [1] "i love she, do you love me ?" > gsub('you','she', a) #可以替換全部參數(shù) [1] "i love she, do she love me ?" gsub('apple','strawberry',fruit) [1] "strawberry orange grape banana"
6. 字符串匹配
grep()負責(zé)搜索給定字符串對象中特定表達式 ,并返回其位置索引。grepl()函數(shù)與之類似,但其后面的”l”則意味著返回的將是邏輯值。
grep('grape',fruitvec) #返回grape在fruitvec中的位置 [1] 3
7. 大小寫替換
> a <- "Hello World" > toupper(a) #全部替換為大寫 [1] "HELLO WORLD" > tolower(a) #全部替換為小寫 [1] "hello world"
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。