如何删除这些字符串中第一个逗号之前的句点?
xx <- c("fefe.3. fregg, ff, 34.gr. trgw",
"fefe3. fregg, ff, 34.gr. trgw",
"fefe3 fregg, ff, 34.gr. tr.gw")
期望的输出:
"fefe3 fregg, ff, 34.gr. trgw"
"fefe3 fregg, ff, 34.gr. trgw"
"fefe3 fregg, ff, 34.gr. tr.gw"
我从
gsub("\\.","", xx))
开始, 删除所有句点。如何更改它以指定“仅在第一个逗号之前的句点”?
最佳答案
我觉得这是作弊,但它适用于这个简单的例子......
xx <- c("fefe.3. fregg, ff, 34.gr. trgw",
"fefe3. fregg, ff, 34.gr. trgw",
"fefe3 fregg, ff, 34.gr. tr.gw")
temp <- strsplit(xx, ",")
sapply(seq_along(temp), function(x) {
t1 <- gsub("\\.", "", temp[[x]][1])
paste(t1, temp[[x]][2], temp[[x]][-c(1, 2)], sep = ",")
})
# [1] "fefe3 fregg, ff, 34.gr. trgw" "fefe3 fregg, ff, 34.gr. trgw"
# [3] "fefe3 fregg, ff, 34.gr. tr.gw"
上面的基本思想是,既然你只会在逗号之前的第一个块中寻找句点,为什么不将它拆分并使用基本的
gsub
在那,然后把碎片放回原处。不太可能有效率....
关于regex - 删除字符串中第一个逗号之前的句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17387482/