str_sub()
提取或替換每個字符串中單個位置的元素。 str_sub_all()
允許您在每個字符串的多個元素處提取字符串。
用法
str_sub(string, start = 1L, end = -1L)
str_sub(string, start = 1L, end = -1L, omit_na = FALSE) <- value
str_sub_all(string, start = 1L, end = -1L)
參數
- string
-
輸入向量。或者是一個字符向量,或者是可強製轉換為一個的東西。
- start, end
-
一對整數向量,定義要提取的字符範圍(包括)。
或者,您可以將矩陣傳遞給
start
,而不是一對向量。該矩陣應有兩列,標記為start
和end
,或start
和length
。 - omit_na
-
單一邏輯值。如果
TRUE
,提供的任何參數中缺少值將導致輸入未更改。 - value
-
替換字符串
值
-
str_sub()
:與string
/start
/end
長度相同的字符向量。 -
str_sub_all()
:與string
長度相同的列表。每個元素都是一個長度與start
/end
相同的字符向量。
也可以看看
stringi::stri_sub()
中的底層實現
例子
hw <- "Hadley Wickham"
str_sub(hw, 1, 6)
#> [1] "Hadley"
str_sub(hw, end = 6)
#> [1] "Hadley"
str_sub(hw, 8, 14)
#> [1] "Wickham"
str_sub(hw, 8)
#> [1] "Wickham"
# Negative indices index from end of string
str_sub(hw, -1)
#> [1] "m"
str_sub(hw, -7)
#> [1] "Wickham"
str_sub(hw, end = -7)
#> [1] "Hadley W"
# str_sub() is vectorised by both string and position
str_sub(hw, c(1, 8), c(6, 14))
#> [1] "Hadley" "Wickham"
# if you want to extract multiple positions from multiple strings,
# use str_sub_all()
x <- c("abcde", "ghifgh")
str_sub(x, c(1, 2), c(2, 4))
#> [1] "ab" "hif"
str_sub_all(x, start = c(1, 2), end = c(2, 4))
#> [[1]]
#> [1] "ab" "bcd"
#>
#> [[2]]
#> [1] "gh" "hif"
#>
# Alternatively, you can pass in a two column matrix, as in the
# output from str_locate_all
pos <- str_locate_all(hw, "[aeio]")[[1]]
pos
#> start end
#> [1,] 2 2
#> [2,] 5 5
#> [3,] 9 9
#> [4,] 13 13
str_sub(hw, pos)
#> [1] "a" "e" "i" "a"
# You can also use `str_sub()` to modify strings:
x <- "BBCDEF"
str_sub(x, 1, 1) <- "A"; x
#> [1] "ABCDEF"
str_sub(x, -1, -1) <- "K"; x
#> [1] "ABCDEK"
str_sub(x, -2, -2) <- "GHIJ"; x
#> [1] "ABCDGHIJK"
str_sub(x, 2, -2) <- ""; x
#> [1] "AK"
相關用法
- R stringr str_subset 查找匹配元素
- R stringr str_split 將字符串分成幾段
- R stringr str_starts 檢測開始/結束時是否存在匹配
- R stringr str_which 查找匹配索引
- R stringr str_extract 提取完整的匹配項
- R stringr str_escape 轉義正則表達式元字符
- R stringr str_trim 刪除空格
- R stringr str_replace_na 把NA變成“NA”
- R stringr str_trunc 將字符串截斷至最大寬度
- R stringr str_match 從匹配中提取組件(捕獲組)
- R stringr str_like 以與 SQL 的 LIKE 運算符相同的方式檢測模式
- R stringr str_length 計算長度/寬度
- R stringr str_detect 檢測是否存在匹配
- R stringr str_count 計算匹配次數
- R stringr str_unique 刪除重複的字符串
- R stringr str_remove 刪除匹配的模式
- R stringr str_pad 將字符串填充到最小寬度
- R stringr str_equal 判斷兩個字符串是否相等
- R stringr str_view 查看字符串和匹配項
- R stringr str_glue 用膠水插補
- R stringr str_conv 指定字符串的編碼
- R stringr str_order 對字符向量進行排序、排名或排序
- R stringr str_c 將多個字符串連接成一個字符串
- R stringr str_wrap 將單詞包裝成格式良好的段落
- R stringr str_dup 複製字符串
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Get and set substrings using their positions。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。