abbreviate
位於 base
包(package)。 說明
將字符串縮寫為至少 minlength
字符,以便它們保持唯一(如果它們是),除非 strict = TRUE
。
用法
abbreviate(names.arg, minlength = 4, use.classes = TRUE,
dot = FALSE, strict = FALSE,
method = c("left.kept", "both.sides"), named = TRUE)
參數
names.arg |
要縮寫的名稱的字符向量,或由 |
minlength |
縮寫的最小長度。 |
use.classes |
邏輯:應該先刪除小寫字符嗎? |
dot |
邏輯:應該添加一個點( |
strict |
邏輯:是否應該嚴格遵守 |
method |
指定與默認 |
named |
邏輯:應該返回 |
細節
使用的默認算法 ( method = "left.kept"
) 與 S 的算法類似。對於單個字符串,其工作原理如下。字符串末尾的第一個空格被刪除。然後(如果需要)任何其他空格都會被刪除。接下來,刪除小寫元音,然後刪除小寫輔音。最後,如果縮寫仍然長於minlength
,則大寫字母和符號將被刪除。
字符總是首先從字符串末尾剝離。如果 names.arg
的某個元素包含多個單詞(單詞之間用空格分隔),則每個單詞至少會保留一個字母。
缺失 (NA
) 值保持不變。
如果use.classes
是FALSE
,則唯一的區別是字母和空格之間。
值
一個字符向量,其中第一個參數中包含字符串的縮寫。原始 names.arg
中的重複項將被賦予相同的縮寫。如果任何非重複元素具有相同的 minlength
縮寫,則如果 method =
"both.sides"
將基本內部 abbreviate()
算法應用於按字符反轉的字符串;如果仍然存在重複的縮寫,並且默認情況下為 strict = FALSE
,則 minlength
會遞增 1,並且僅為這些元素找到新縮寫。重複此過程,直到 names.arg
的所有唯一元素都具有唯一縮寫。
如果 names
為 true,則 names.arg
的字符版本將作為 names
屬性附加到返回值:不保留其他屬性。
如果輸入元素包含非 ASCII 字符,則相應的值將采用 UTF-8 格式並如此標記(請參閱 Encoding
)。
警告
如果use.classes
是 true (默認值),這實際上隻適用於英語,並且之前R3.3.0 無法在多字節語言環境中正確處理非 ASCII 字符。如果與非 ASCII 字符一起使用(並且需要減少長度),它將發出警告。它不太可能與不在 Unicode 基本多語言平麵中的輸入以及在寬字符未以 Unicode 編碼的(罕見)平台上良好地配合。
來自R3.3.0 ‘vowel’ 的概念是從英語元音擴展而來,包括小寫英語元音的重音版本字符(包括“帶有筆劃的 o”)。當然,有些語言(甚至是威爾士語等西歐語言)也有其他元音。
例子
x <- c("abcd", "efgh", "abce")
abbreviate(x, 2)
abbreviate(x, 2, strict = TRUE) # >> 1st and 3rd are == "ab"
(st.abb <- abbreviate(state.name, 2))
stopifnot(identical(unname(st.abb),
abbreviate(state.name, 2, named=FALSE)))
table(nchar(st.abb)) # out of 50, 3 need 4 letters :
as <- abbreviate(state.name, 3, strict = TRUE)
as[which(as == "Mss")]
## and without distinguishing vowels:
st.abb2 <- abbreviate(state.name, 2, FALSE)
cbind(st.abb, st.abb2)[st.abb2 != st.abb, ]
## method = "both.sides" helps: no 4-letters, and only 4 3-letters:
st.ab2 <- abbreviate(state.name, 2, method = "both")
table(nchar(st.ab2))
## Compare the two methods:
cbind(st.abb, st.ab2)
也可以看看
substr
。
相關用法
- R apply 在數組邊距上應用函數
- R as.Date 日期與字符之間的轉換函數
- R agrep 近似字符串匹配(模糊匹配)
- R append 向量合並
- R assignOps 賦值運算符
- R as.POSIX* 日期時間轉換函數
- R asplit 按邊距分割數組/矩陣
- R attributes 對象屬性列表
- R all.equal 測試兩個對象是否(幾乎)相等
- R aperm 數組轉置
- R args 函數的參數列表
- R attr 對象屬性
- R array2DF 將數組轉換為 DataFrame
- R autoload 按需加載包
- R attach 將一組 R 對象附加到搜索路徑
- R all.names 查找表達式中的所有名稱
- R as.environment 強製環境對象
- R as.function 將對象轉換為函數
- R assign 為名稱分配值
- R any 有些值是真的嗎?
- R array 多路陣列
- R as.data.frame 強製數據幀
- R all 所有的值都是真的嗎?
- R file.path 構造文件路徑
- R grep 模式匹配和替換
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Abbreviate Strings。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。