【问题标题】:Extract Strings According to Two different Characters根据两个不同的字符提取字符串
【发布时间】:2021-10-26 15:18:10
【问题描述】:

我正在尝试在两个不同字符/分隔符的位置之后提取字符串。以下是我正在尝试使用的数据框:

PMLBM000DUZ_PMCRZ362RNZ_RNA-Seq.multiqc_original.zip

电流输出

FileName                Date
ID1_Joe_RNA.file1.zip   2021-10-29
ID1_Jim_DNA.file2.zip   2021-03-29
ID1_Tim_RNA.file3.zip   2021-05-29

期望的输出

FileName                Date       ID  Name  BioType  FileNo  Extension
ID1_Joe_RNA.file1.zip   2021-10-29 ID1 Joe   RNA      file1   zip
ID1_Jim_DNA.file2.zip   2021-03-29 ID1 Jim   DNA      file2   zip
ID1_Tim_RNA.file3.zip   2021-05-29 ID1 Tim   RNA      file3   zip

我尝试过使用 dplyr 和 tidyverse,但不断收到分离或子集的错误:

DataSplit <- strsplit(file$FileName, "_")
DataSplit2 <-strsplit(DataSplit, ".")

gsub("\\_.*","", file$FileName)

不确定我是否必须打电话

DataSplit[[#]] 每列?

【问题讨论】:

    标签: r dataframe dplyr


    【解决方案1】:

    您可以使用包tidyr中的函数separate

    df <- df |>
          tidyr::separate(fileName, into = c("ID","Name","BioType", "FileNo",  "Extension"), sep = "[_.]")
    
    

    【讨论】:

    • 我收到一条错误消息,我认为我可以更改“。”对于 "" _然后执行单独的命令? 'df$FileName
    • 错误:必须提取具有单个有效下标的列。
    猜你喜欢
    • 1970-01-01
    • 2015-05-04
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多