paste
位於 base
包(package)。 說明
轉換為字符後連接向量。
用法
paste (..., sep = " ", collapse = NULL, recycle0 = FALSE)
paste0(..., collapse = NULL, recycle0 = FALSE)
參數
... |
一個或多個R對象,要轉換為字符向量。 |
sep |
用於分隔術語的字符串。不是 |
collapse |
用於分隔結果的可選字符串。不是 |
recycle0 |
|
細節
paste
將其參數(通過 as.character
)轉換為字符串,並將它們連接起來(用 sep
給出的字符串分隔它們)。如果參數是向量,則它們將逐項連接以給出字符向量結果。向量參數根據需要回收,僅當 recycle0
不為 true 或 collapse
不是 NULL
時,零長度參數才會回收到 ""
。
請注意, paste()
將字符缺失值 NA_character_
強製轉換為 "NA"
,這可能看起來不合需要,例如在粘貼兩個字符向量時,或者非常合需要,例如在paste("the value of p is ", p)
中。
paste0(..., collapse)
相當於 paste(..., sep = "", collapse)
,效率稍高一些。
如果為 collapse
指定了值,則結果中的值將連接成單個字符串,其中元素由 collapse
的值分隔。
值
連接值的字符向量。如果所有對象都是長度,則其長度為零,除非 collapse
為非 NULL,在這種情況下它是 ""
(單個空字符串)。
如果結果元素的任何輸入都是 UTF-8 格式(並且沒有使用 "bytes"
編碼進行聲明,請參閱 Encoding
),則該元素將采用 UTF-8 格式,否則采用當前編碼,在這種情況下,編碼將采用如果當前語言環境是 Latin-1 或 UTF-8,則聲明該元素的 ,至少一個相應的輸入(包括分隔符)具有聲明的編碼,並且所有輸入都是 ASCII 或聲明的。
如果使用編碼 "bytes"
聲明元素的輸入,則不會對任何元素進行任何轉換,並且生成的元素將具有編碼 "bytes"
。如果 collapse
為非 NULL,則這也適用於第二個折疊階段,但在第一階段將對象粘貼在一起時可能已完成一些轉換。
例子
## When passing a single vector, paste0 and paste work like as.character.
paste0(1:12)
paste(1:12) # same
as.character(1:12) # same
## If you pass several vectors to paste0, they are concatenated in a
## vectorized way.
(nth <- paste0(1:12, c("st", "nd", "rd", rep("th", 9))))
## paste works the same, but separates each input with a space.
## Notice that the recycling rules make every input as long as the longest input.
paste(month.abb, "is the", nth, "month of the year.")
paste(month.abb, letters)
## You can change the separator by passing a sep argument
## which can be multiple characters.
paste(month.abb, "is the", nth, "month of the year.", sep = "_*_")
## To collapse the output into a single string, pass a collapse argument.
paste0(nth, collapse = ", ")
## For inputs of length 1, use the sep argument rather than collapse
paste("1st", "2nd", "3rd", collapse = ", ") # probably not what you wanted
paste("1st", "2nd", "3rd", sep = ", ")
## You can combine the sep and collapse arguments together.
paste(month.abb, nth, sep = ": ", collapse = "; ")
## Using paste() in combination with strwrap() can be useful
## for dealing with long strings.
(title <- paste(strwrap(
"Stopping distance of cars (ft) vs. speed (mph) from Ezekiel (1930)",
width = 30), collapse = "\n"))
plot(dist ~ speed, cars, main = title)
## 'recycle0 = TRUE' allows more vectorized behaviour, i.e. zero-length recycling :
valid <- FALSE
val <- pi
paste("The value is", val[valid], "-- not so good!")
paste("The value is", val[valid], "-- good: empty!", recycle0=TRUE) # -> character(0)
## When 'collapse = <string>', the result is a length-1 string :
paste("foo", {}, "bar", collapse="|") # |--> "foo bar"
paste("foo", {}, "bar", collapse="|", recycle0 = TRUE) # |--> ""
## all empty args
paste( collapse="|") # |--> "" as do all these:
paste( collapse="|", recycle0 = TRUE)
paste({}, collapse="|")
paste({}, collapse="|", recycle0 = TRUE)
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
toString
通常調用 paste(*, collapse=", ")
。使用 as.character
、 substr
、 nchar
、 strsplit
進行字符串操作;此外,cat
連接並寫入文件,sprintf
用於類似 C 的字符串構造。
‘plotmath’用於在繪圖注釋中使用paste
。
相關用法
- R parse 解析 R 表達式
- R path.expand 展開文件路徑
- R pushBack 將文本推回連接
- R plot 通用 X-Y 繪圖
- R prod 向量元素的乘積
- R print 打印值
- R print.default 默認打印
- R pipeOp 前向管道操作符
- R polyroot 求實數或複數多項式的零點
- R pos.to.env 將搜索路徑中的位置轉換為環境
- R pmatch 部分字符串匹配
- R print.data.frame 打印 DataFrame
- R proc.time R的運行時間
- R prmatrix 打印矩陣,舊式
- R proportions 將表條目表示為邊表的分數
- R pcre_config PCRE 的報告配置選項
- R pretty 漂亮的斷點
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R lapply 對列表或向量應用函數
- R dump R 對象的文本表示
- R Sys.getenv 獲取環境變量
- R rank 樣本排名
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Concatenate Strings。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。