r - 不知道如何编写正则表达式
问题描述
我正在尝试区分团队名称。问题是两个团队都在一个列中,用破折号分隔,有些团队的名称中有破折号。格式为破折号团队名称、空格、破折号、空格、新团队名称。我想在有空格的地方分割,然后是破折号,然后是空格(“ - ”)。
例如,这里有一个问题:
"Team-A - B"
我想在一栏中阅读“A 队”,另一栏阅读“B”。
为此,我尝试过
x <- str_split(data$Team, " - ")
但这只会返回我通过它发送的相同文本。我使用了 regex101 链接:https ://regex101.com/r/PUxFir/1 ,我认为我使用正确,但显然不是。如何让 R 将破折号前后的空间识别为不同的分隔位置,而不仅仅是每个破折号?
解决方案
您可以使用tidyr::separate
到split
Team
2 列。
tidyr::separate(df, Team, c('TeamA', 'TeamB'), sep = '\\s-\\s')
# TeamA TeamB
#1 Bars Torpedo Gorky
#2 Chelmet Chelyabinsk Almetyevsk
#3 Dynamo Moscow Region HC Rostov
#4 Gornyak Uchaly Izhevsk
#5 HC Yugra Nomad Nur-Sultan
#6 Krasnoyarsk Kazzinc-Torpedo
#7 KRS ORG Penza
#8 Kurhan Perm
#9 Orsk Toros Neftekamsk
#10 Ryazan Zvezda Moscow
#11 Tambov Voronezh
#12 Tseng Tou Beijing
#13 Tyumen Karaganda
#14 Yermak Angarsk Metallurg Novokuznetsk
#15 Bars Zvezda Moscow
#16 Beijing Penza
#17 Chelmet Chelyabinsk Toros Neftekamsk
#18 Dynamo Moscow Region Voronezh
#19 Gornyak Uchaly Perm
推荐阅读
- mongodb - 使用对象字段更新文档
- regex - 想复制美国格式的电话号码
- java - Spring Boot 应用程序中的 Spring 初始化程序
- vb.net - 比较不同表vb.net中相同列的数据表
- spring-boot - Kotlin 使用存储库进行测试(spring-boot、kotlin、jersey、jax-rs)
- python - 解析一组数字范围
- kotlin - 实现 LiveData 的正确方法
- java - 对于具有自定义登录屏幕的多个域,我需要哪个 oauth2 流程
- php - 如何在 PHP 中访问嵌套的 JSON
- php - PHP 上传照片得到一个 url “[Deprecation]” 错误