Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从文件名中提取信息_R - Fatal编程技术网

R 从文件名中提取信息

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_

我想知道如何从文件名中提取以下信息?文件名的最后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_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