簡體   English   中英

基於組將數據添加到 dataframe

[英]Adding data to a dataframe based on groups

我正在處理生物信息學數據,每行都有一個基因,列中有統計信息/元數據。 一些基因來自同一生物體,由“ID”列指示,我將數據分組在這個變量上。

data <- data %>%
  group_by(ID)

我想根據 ID(分組因子)添加來自另一個文件的數據,以便 ID = a 的行應該具有來自名為 a.gff 的文件的數據,依此類推。 我要添加的數據來自包含基因位置的 .gff 文件。 有一個 ID=a 的 gff 文件,一個 ID=b 的文件,一個 ID=c 的文件,等等根據 ID 命名(例如“a.gff”)。

數據是什么樣子的:

基因 ID
賽拉 一個
細胞 一個
Atl b
prT 一個
胡爾 c

有沒有辦法實現 function 為每個 ID 分組打開一個文件,執行操作並移動到下一個 ID?

我對 R 很陌生,非常感謝任何幫助!

我認為最簡單的方法是首先閱讀所有.gff文件。 我不熟悉格式,所以我的示例將使用.csv擴展名。 以下代碼將“dir”目錄中的所有文件作為列表列讀取,然后將其取消嵌套,使其成為常規 tibble。

之后,您可以只使用兩個小標題left_join() ,然后按ID分組。

library(tidyverse)

binded <- tibble(
    file = list.files("dir"), # can remove before the join
    location = list.files("dir", full.names = TRUE), # can remove before the join
    ID = str_remove(file, "\.csv"),
    df = map(location, read_csv)
) %>% 
    unnest(df)

data %>% 
    left_join(binded)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM