【发布时间】:2021-07-03 19:17:42
【问题描述】:
这可能是一个相当容易解决的问题,但我的 RegExpr 不如理想中的那么好,因此感谢您的帮助。我在别处找过,没有什么对我有用。
我正在尝试标准化一些大学学位的名称。我需要以下格式:
学位代码 - 专业名称 EG - “BA - 计算机材料”
IE 一个单词、单个空格、破折号、单个空格、单词。
它不能识别破折号一侧或两侧的多个空格,如果它看不到空格,它将用小写 s 替换破折号两侧的字母,我认为 \s 或 \s 空白它会替代。
这一点格式修复是更大的 mutate 语句的一部分,即带括号的单行 ala 其他地方的 ve 示例对我不起作用。
我有示例数据:
data <- data.frame( var = c("BA-English" , "BA - English" , "BA - Chemistry" , "BS - Rubber Chickens") )
var %>%
mutate(var = gsub("\\w\\S-\\S\\w", "\\w\\s-\\s\\w", var) ) -> var_fix )
非常感谢任何帮助。谢谢
【问题讨论】:
-
试试
gsub("\\s*-\\s*", " - ", var)或gsub("\\b\\s*-\\s*\\b", " - ", var) -
是的,效果很好,感谢您在下面发布这个作为答案,更重要的是,添加对 RegExpr 的每个部分的作用以及包含它的原因的描述。谢谢!