r - 从文件名+1字符中提取字符
问题描述
我希望能够从文件名中提取字符。我想提取 B+1 字符
df <- c("2010-01-14_B1_RP_NEG_09.mzML","2010-01-14_B1_RP_NEG_10.mzML","2010-01-15_B2_RP_NEG_11.mzML","2010-01-15_B2_RP_NEG_12.mzML", "2010-01-16_B3_RP_NEG_13.mzML", "2010-01-16_B3_RP_NEG_14.mzML")
df
可以通过以下方式完成:
substring(df,12,13)
但是在长文件名中,知道如何提取 B+1 字符会很方便。此代码提取 B 之后的字符。
substring(df, regexpr("B", df)+1)
它应该看起来像
B1, B1, B2, B2, B3, B3
有什么好的建议吗?:)
解决方案
使用sub
我们可以提取“B”后跟一个数字。
sub(".*(B\\d+).*", "\\1", df)
#[1] "B1" "B1" "B2" "B2" "B3" "B3"
或与str_extract
:
stringr::str_extract(df, "B\\d+")
推荐阅读
- python - 如何使用“pymysql”打印发送到 mySQL 的查询?
- http - 使用 auth 访问 http 代理
- java - JAX-WS 客户端和 SocketTimeoutException 与 ConnectException
- azure - Azure 部署 - 使用 ARM 函数覆盖参数
- python - 使用python pandas style.where(或其他方式)为不匹配的两列中的特定单元格着色并导出到excel
- nservicebus - NServiceBus.Persistence.Sql.MSBuild 不会从引用的程序集创建 saga sql 脚本
- c# - 如何从复杂的 SQL 创建 LINQ?
- pandas - RuntimeError:不支持的类型转换为箭头:VectorUDT
- javascript - 尝试使 Webpack 3 与 IE8 兼容
- visual-studio-2017 - 从 Visual Studio 2017 社区升级到 Pro