R 从文件名中提取信息
我想知道如何从文件名中提取以下信息?文件名的最后3位是注入顺序。在“POS_”之后,显示样本类型。有什么建议吗?谢谢R 从文件名中提取信息,r,R,我想知道如何从文件名中提取以下信息?文件名的最后3位是注入顺序。在“POS_”之后,显示样本类型。有什么建议吗?谢谢 df <- c("2018-03-04_B6W3_RN_POS_lQC09_098.mzML", "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML", "2018-03-06_B8W3_RN_POS_sQC09_001.mzML") df [1] "2018-03-04_B6W3_RN_POS_lQC09_
df <- c("2018-03-04_B6W3_RN_POS_lQC09_098.mzML", "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML", "2018-03-06_B8W3_RN_POS_sQC09_001.mzML")
df
[1] "2018-03-04_B6W3_RN_POS_lQC09_098.mzML" "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML"
[3] "2018-03-06_B8W3_RN_POS_sQC09_001.mzML"
样本:
"lQC" "LVL" "sQC"
试试这个:
require(stringr)
df <- c("2018-03-04_B6W3_RN_POS_lQC09_098.mzML", "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML", "2018-03-06_B8W3_RN_POS_sQC09_001.mzML")
df
# [1] "2018-03-04_B6W3_RN_POS_lQC09_098.mzML" "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML"
# [3] "2018-03-06_B8W3_RN_POS_sQC09_001.mzML"
injection_str <- str_extract(df, "[0-9]{3}(?=\\.)")
injection_str
# [1] "098" "108" "001"
sample_str <- str_extract(df, "(?<=(POS_))[a-zA-Z0-9]{3}")
sample_str
# [1] "lQC" "LVF" "sQC"
require(stringr)
df试试这个:
require(stringr)
df <- c("2018-03-04_B6W3_RN_POS_lQC09_098.mzML", "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML", "2018-03-06_B8W3_RN_POS_sQC09_001.mzML")
df
# [1] "2018-03-04_B6W3_RN_POS_lQC09_098.mzML" "2018-03-05_B7W3_RN_POS_LVF957364573527_108.mzML"
# [3] "2018-03-06_B8W3_RN_POS_sQC09_001.mzML"
injection_str <- str_extract(df, "[0-9]{3}(?=\\.)")
injection_str
# [1] "098" "108" "001"
sample_str <- str_extract(df, "(?<=(POS_))[a-zA-Z0-9]{3}")
sample_str
# [1] "lQC" "LVF" "sQC"
require(stringr)
df此解决方案基于包stringr
和(?=\\)
中的正向前瞻以及(?此解决方案基于包stringr
和(?=\\)
中的正向前瞻以及中的正向前瞻(?使用带有前瞻性的正则表达式。类似的东西可以做strsplit(gsub(.*POS(\\D+)?*(\\D+)*,“\\1\\2”,df),“”,fixed=TRUE)
尽管我不确定您确切想要的输出是什么使用带有前瞻性的正则表达式。类似的东西可以做strsplit(gsub(.*POS(\\D+)?*,“\\1\\2”,df),“”,fixed=TRUE)
虽然我不确定您想要的确切输出是什么
dt <- data.frame(injection = str_extract(df, "\\d{3}(?=\\.)"),
sample = str_extract(df, "(?<=POS_)\\w{3}"))
dt
injection sample
1 098 lQC
2 108 LVF
3 001 sQC