str之间的行为不一致
stringr包中str_split
的文档声明了pattern参数:
如果“”分裂成单个字符。
这表明它在这方面的表现与strsplit
相同。 然而,
library(stringr)
str_split("abcab","")
[[1]]
[1] "" "a" "b" "c" "a" "b"
与领先的空字符串。 与此相比,
strsplit("abcab","")
[[1]]
[1] "a" "b" "c" "a" "b"
在分割非空字符串时,引导空字符串似乎是正常行为,
strsplit("abcab","ab")
[[1]]
[1] "" "c"
但即使如此, str_split
生成一个'额外'尾随空字符串:
str_split("abcab","ab")
[[1]]
[1] "" "c" ""
这种差异是错误,功能,文档中的错误还是只是“预期行为”的不同概念?
如果您使用逗号作为分隔符,“预期”(您的里程可能会有所不同)结果更为明显:
# expect "" "2" "3" "4" ""
strsplit(",2,3,4,", ",")
# [[1]]
# [1] "" "2" "3" "4"
str_split(",2,3,4,", ",")
# [[1]]
# [1] "" "2" "3" "4" ""
如果我有n
逗号,那么我希望返回(n+1)
元素。 所以我更喜欢str_split
的结果。 但是,我不一定会将这称为strsplit
一个错误,因为在广告中的执行情况如下:
(from?strplit)请注意,这意味着如果在一个(非空)字符串的开始处有一个匹配项,那么输出的第一个元素是'“'',但是如果在字符串,输出与删除匹配相同。
""
更棘手,因为没有办法计算出现在字符串中的次数""
。 因此,将其视为一种特殊情况似乎是合理的。
(来自?str_split)如果'“”'分裂成单个字符。
基于此,我建议你找到了一个错误,并应该采取哈德利的建议,并报告!
链接地址: http://www.djcxy.com/p/54747.html上一篇: Inconsistent behavior between str
下一篇: How to Prevent Cracker Getting a Login Access via Stealing Cookies