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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。