-1

是否有其他可能性来拆分字符串而不是?

unlist(strsplit("1.2.3", "[.]"))
scan(text="1.2.3", what="", sep=".")
4

2 回答 2

4

来自基本包的 R 模式匹配函数(请参阅 参考资料?gsubgregexpr是在这里使用的正确函数。它将识别不是字符块的开始和结束位置.,然后您可以使用以下方法重建它们regmatches

x <- "1.2.3.4as.zz2.zzxd3"

regmatches(x, gregexpr("[^.]+", x))[[1]]
# [1] "1"     "2"     "3"     "4as"   "zz2"   "zzxd3"

但实际上,我看不到您使用strsplit. 如果您能告诉我们您不喜欢它的哪些方面,也许我们可以提供更多帮助。

于 2013-09-04T11:42:10.613 回答
-1

gsub 和子。Sub 是惰性的,因此只会在模式的第一次出现(从左到右)时起作用。Gsub(全局子)将适用于所有这些。

> sub("asdkd_kasd_ads", pattern = "_", replacement = "")
[1] "asdkdkasd_ads"
> sub("asdkd_kasd_ads", pattern = "_.*", replacement = "")
[1] "asdkd"
> gsub("asdkd_kasd_ads", pattern = "_", replacement = "")
[1] "asdkdkasdads"
> gsub("asdkd_kasd_ads", pattern = "_.*", replacement = "")
[1] "asdkd"

或者在你的情况下:

> gsub("1.2.3", pattern = "\\.", replacement = " ")
[1] "1 2 3"
于 2013-09-04T11:35:17.533 回答