r - 从 R 中的下一行赋值
问题描述
我有您当前所在的国家/地区:印度或新加坡之类的数据。
我需要将“印度或新加坡”分配给变量国家。我正在尝试使用
word(mytext[which(str_detect(mytext,"Country"))+1],1:3,sep = fixed(' '))
但它无法正确分配。国家和值在不同的行中如何修改我的代码以分配正确的值。?
解决方案
如果您打算匹配Country:
/Country
到下一个逗号之后的所有文本,您可以使用
Country(?:\s*:)?\s*([^,]*)
查看正则表达式演示
如果您确定您只需要 3 个字之后Country
,请使用
Country(?:\s*:)?\s*([\w'-]+(?:\s+[\w'-]+){2})
请参阅此正则表达式演示。
在 R 中,使用stringr::str_match
:
stringr::str_match(text, "Country(?:\\s*:)?\\s*([^,]*)")[,2]
stringr::str_match(text, "Country(?:\\s*:)?\\s*([\\w'-]+(?:\\s+[\\w'-]+){2})")[,2]
图案细节
Country
- 文字字符串(?:\s*:)?
- 一个可选的 0+ 空格序列,然后是一个冒号\s*
- 0+ 个空格([^,]*)
- 捕获组 #1 匹配 0 个或多个除逗号以外的字符。
推荐阅读
- cookies - Pm.cookies.jar 找不到 secure=true 的 cookie
- java - Apache Camel 中的“先开火然后返回”路线
- ffmpeg - 使用 ffmpeg 录制游戏屏幕时显示透明键盘的色度键过滤器
- react-native - 由于 com.facebook.react.views.text.ReactTextView,Android 应用程序崩溃。
- php - 存储过程中的 OUT 参数声明
- reactjs - React Storybook 无法在 Windows 10 上运行
- kotlin - 用于扩展类和实现接口的 kotlin 语法
- ios - 在本地下载并构建 Carthage 以避免进入 CI
- php - 雄辩的 laravel 查询条件有两种不同的处理
- python - 不同阈值下的特异性(与 sklearn.metrics.precision_recall_curve 相同)