我需要用一个公共(public)字符拆分一堆字符串,但我需要保留此拆分的前缀并将其粘贴到新的拆分字符串中。这是我的矢量数据中前两个字符串的示例(有很多)。
例子:
dat <- c("Dry Lake I & II", "Blue Moon 1 & 2", "Hardscrabble 2012 & 2013)
"Dry Lake I & II"
"Blue Moon 1 & 2"
需要成为:
"Dry Lake I"
"Dry Lake II"
"Blue Moon 1"
"Blue Moon 2"
我可以使用 strsplit
拆分,但我不知道如何完成第二部分。
strsplit(dat, "&")
给我:
[[1]]
[1] "Dry Lake I " " II"
[[2]]
[1] "Blue Moon 1 " " 2"
有什么想法吗?
最佳答案
这是一个可能适合您需要的版本:
x <- "Dry Lake I & II"
x <- sub("(.*) I & II", "\\1 I & \\1 II", x)
strsplit(x, "\\s+&\\s+")[[1]]
[1] "Dry Lake I" "Dry Lake II"
这里的逻辑是我们转换<some content> I & II
进入:
<some content> I & <some content> II
然后,我们根据分隔符 &
进行拆分生成字符向量。这里的一个缺陷是,如果&
,该方法可能不起作用。可以作为名称的一部分出现。
关于r - string a split 并将前缀粘贴到新的拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55797079/