R语言【base】——strsplit():将字符向量的元素根据对子字符串的匹配拆分为子字符串。

2024-01-09 14:28:56

Package?base?version 4.2.0


Usage

strsplit(x, split, fixed = FALSE, perl = FALSE, useBytes = FALSE)

Arguments

参数【x】:字符向量,其中的每个元素将被拆分。其他输入,包括一个因子,将报错。

参数【split】:包含用于分割的正则表达式(除非参数【fixed】 = TRUE)的字符向量(或可以强制为这样的对象)。如果出现空匹配,特别是如果参数【split】的长度为 0,则将参数【x】拆分为单个字符。如果参数【split】的长度大于?1,则沿着参数【x】重新循环。

参数【fixed】:逻辑值。如果 TRUE 匹配精确分割,否则使用正则表达式。优先于参数【perl】

参数【perl】:逻辑值。应该使用 Perl 兼容的正则表达式吗?

参数【useBytes】:逻辑值。如果为 TRUE,则匹配是逐字节而不是逐字符进行的,并且不转换带有标记编码的输入。如果找到任何标记为 “bytes” 的输入,则强制执行(带有警告)。


Details

参数【split】将强制为 character,因此使用 参数【split】 = NULL?表示 参数【split】 = character(0)

注意,拆分为单个字符可以通过参数【split】 = character(0)?参数【split】 = NULL?;这两个是等价的。这里 'character' 的定义取决于语言环境:在单字节语言环境中,它是一个字节,而在多字节语言环境中,它是由 'wide character' 表示的单位(几乎总是Unicode码位)。

参数【split】为缺失值就不会拆分参数【x】的相应元素。

应用于每个输入字符串的算法为:

repeat {
        if the string is empty
            break.
        if there is a match
            add the string to the left of the match to the output.
            remove the match and all to the left of it.
        else
            add the string to the output.
            break.
    }

请注意,这意味着如果在(非空)字符串的开头存在匹配,则输出的第一个元素是 "",但如果在字符串的末尾存在匹配,则输出与删除匹配后的输出相同。

当前区域设置中的无效输入将被警告最多5次。


Value

参数【x】长度相同的列表,其中第 i 个元素包含参数【x】的分割向量 [i]

如果参数【x】参数【split】的任何元素被声明为 UTF-8 格式,则结果中的所有非 ascii 字符串都将被声明为 UTF-8 格式并将其编码声明为 UTF-8。(如果任何元素被声明为Latin-1,除了在Latin-1区域设置中,这也成立。)对于参数【perl】= TRUE, 参数【useBytes】 = FALSE,多字节区域设置中的所有非 ascii 字符串都被转换为 UTF-8

文章来源:https://blog.csdn.net/whitedrogen/article/details/135476081
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。