r - 第一个和第二个“_”之间的正则表达式
问题描述
大家好,我有一个关注数据:
data
proprio_com_luz
proprio_sem_ola_acabo
我想创建两个新变量
data condition variable
proprio_com_luz com luz
proprio_sem_ola_acabo sem ola_acabo
什么正则表达式在这里帮助我?
解决方案
extract
从tidyr
:_
library(tidyr)
extract(df, data, c("condition", "variable"),
regex = "^[^_]+_([^_]+)_(.+)$", remove = FALSE)
或以 R 为基数:
pattern <- "^[^_]+_([^_]+)_(.+)$"
df$condition = sub(pattern, "\\1", df$data)
df$variable = sub(pattern, "\\2", df$data)
输出:
data condition variable
1 proprio_com_luz com luz
2 proprio_sem_ola_acabo sem ola_acabo
数据:
df <- data.frame(data = c("proprio_com_luz",
"proprio_sem_ola_acabo"))
推荐阅读
- jquery - 在 Bootstrap 中启动 Modals 时如何在文本框上进行 .focus()
- curl - 更新 html 会话 R
- microsoft-graph-api - Microsoft Graph - 如何获取共享点站点
- delphi - delphi 如何使用笔压属性?
- java - 子域下的重定向问题
- dictionary - 在函数中从 Hashmap 正确返回 Int
- c# - 如何为每个请求更改我的架构?
- swift - 带有远程 URL 的 Swift CSVImporter 框架
- c# - 如何将 s-maxage 添加到 Web、配置缓存配置文件
- forms - 使用电子表格中最后记录的响应中的数据预填充谷歌表单字段