【问题标题】:How to map a column of sample ID's to their respective filename如何将一列样本 ID 映射到它们各自的文件名
【发布时间】:2023-02-22 04:32:37
【问题描述】:

我有一个数据框,其中包含一个名为 sample_id 的列以及其他元数据。

df <- data.frame(sample_id = c('x1', 'x2', 'x3', 'x4'))

我还有一个文件列表,其中包含各自的文件名,这些文件名可能并不总是具有相同的后缀。

files <- list('x1_001.txt', 'x2_003.txt', 'x4_abc.txt', 'x3_bg.txt')

我想在数据框中创建一个列,从文件列表中获取文件名并将其映射到相应的 sample_id。

但是,当我尝试使用 df &lt;- df %&gt;% mutate(filename = grep(sample_id, files, value = TRUE) 执行此操作时,它不起作用。

是否有具有此功能的功能,或者我需要创建一些自定义功能?

感谢您的任何帮助。

df <- df %>% mutate(filename = grep(sample_id, files, value = TRUE)

【问题讨论】:

    标签: r dplyr data-wrangling


    【解决方案1】:

    我们可以用

    v1 <- unlist(files)
    df$filename <- v1[match(df$sample_id, sub( "_.*", "", v1))]
    

    -输出

    > df
      sample_id   filename
    1        x1 x1_001.txt
    2        x2 x2_003.txt
    3        x3  x3_bg.txt
    4        x4 x4_abc.txt
    

    【讨论】:

      猜你喜欢
      • 2020-01-14
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 2021-08-05
      相关资源
      最近更新 更多