
192
|
第
7
章
你可以通过利用循环规则拓展这个技巧,但我们不建议你这么做。
7.4 根据分隔符分割字符串
7.4.1 问题
你需要将字符串拆分为子串。子串由分隔符分隔。
7.4.2 解决方案
使用 strsplit,它接受两个参数
—
字符串和子串的分隔符:
strsplit(
string
,
delimiter
)
delimiter
可以是简单字符串或正则表达式。
7.4.3 讨论
字符串通常包含由相同的分隔符分隔的多个子串。一个例子是文件路径,它的各个组成
部分由斜杠(/ )分隔:
path <- "/home/mike/data/trials.csv"
我们可以使用 strsplit 和分隔符 / 将该路径拆分为多个组成部分:
strsplit(path, "/")
#> [[1]]
#> [1] "" "home" "mike" "data" "trials.csv"
注意,第一个“部分”实际上是一个空字符串,因为第一个斜杠之前没有任何内容。
另请注意,strsplit 返回一个列表,并且列表的每个元素都是一个子字符串构成的向
量。这种两级结构是必要的,因为第一个参数可以是字符串向量。每个字符串被拆分为
多个子串(向量),然后这些向量以一个列表的形式返回。
如果你只在一个字符串上运行,则可以用下列方法返回结果列表的第一个元素:
strsplit(path, "/")[[1]]
#> [1] "" "home" "mike" "data" "trials.csv"
此示例拆分三个文件路径并返回一个 3 元素构成的列表: ...