是否有其他可能性来拆分字符串而不是?
unlist(strsplit("1.2.3", "[.]"))
scan(text="1.2.3", what="", sep=".")
来自基本包的 R 模式匹配函数(请参阅 参考资料?gsub
)gregexpr
是在这里使用的正确函数。它将识别不是字符块的开始和结束位置.
,然后您可以使用以下方法重建它们regmatches
:
x <- "1.2.3.4as.zz2.zzxd3"
regmatches(x, gregexpr("[^.]+", x))[[1]]
# [1] "1" "2" "3" "4as" "zz2" "zzxd3"
但实际上,我看不到您使用strsplit
. 如果您能告诉我们您不喜欢它的哪些方面,也许我们可以提供更多帮助。
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"