0

你能告诉我,为什么解析字符串后向量中有一个空元素?

我输入的内容:

a <- "--key1 = value1 --key2 = value2 --key3 = value3 --switch.1 --switch.2"
unlist(strsplit(a, split = "--"))

我得到什么:

[1] ""               "key1 = value1 " "key2 = value2 " "key3 = value3 "
[5] "switch.1 "      "switch.2"

还有一个问题:是否可以仅从向量中选择那些包含“=”(任何特定字母)的元素?

先感谢您!

4

2 回答 2

4

您将字符串拆分为"--"分隔符。由于输入字符串中的第一个字符是"--",从概念上讲,您首先有一个空子字符串,然后是分隔符,然后是字符串的其余部分,等等。这就是结果数组中的第一个元素是空字符串的原因。

于 2013-06-12T20:35:05.263 回答
3

?strsplit

 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.
}

所以第一个条目必须""在左边,这就是你选择它的原因。您始终可以在拆分后进行子集化!=""

于 2013-06-12T20:36:53.180 回答