【发布时间】:2020-06-29 15:07:58
【问题描述】:
我有一个数据集,有时度量单位与数字之间没有用空格隔开,我想将其添加进去。我有一个可以在数据集中使用的度量单位列表,我想要确保每次出现时都有一个空格。
我的数据是这样的:
mydata <- c("black box 125CM", "10KG white chair", "bottle of water 1000ML")
我想:
result <- c("black box 125 CM", "10 KG white chair", "bottle of water 1000 ML")
可能出现的计量单位:
measure <- c("ML", "MG", "F", "CM", "CPR", "FL", "CPS", "KG")
到目前为止我已经尝试过(但它不起作用):
for (i in 1:NROW(measure)) {
replacement <- paste0("\\s", measure[i])
result <- gsub("(?<=[[:digit:]])"measure[i], replacement, mydata, perl = TRUE)
}
如果是一次替换,我可以这样做:
result <- gsub("(?<=[[:digit:]])MG", " MG", mydata, perl = TRUE)
我只是不知道应该如何在 gsub 函数中编写 measure[i],我找不到正确的语法。
有什么建议么?非常感谢您。
【问题讨论】:
-
尝试类似:
gsub(paste0( "(?<=[[:digit:]])(", paste(measure, collapse="|"), ")"), " \\1", mydata, perl = TRUE)