簡體   English   中英

根據對一個和另一個列的觀察創建一個新數據集

[英]Create a new dataset based on the observations of the one and the column of the other

我正在嘗試解決我面臨的一個問題......假設我有這兩個數據集,一個是帶有基因靶標的葯物,另一個是帶有癌症基因的患者數據:

docetaxel   carboplatin
AR      ACVR1C
CYP3A4  ALDH1A1
ESR1    ALDH3A1
NR3C1   ARFGEF1
TACR2   BAX
TDP1    NOTCH/MAST
TP53    BCL2L12
TUBA1A  BIRC2
TUBA1B  BRCA1

Patient ID  Breastcancergenes
1   ESR1-CCDC170
2   ESR1
3   BCL2L14-ETV6
4   ETV6-NTRK3
5   MYB-NFIB
6   NOTCH/MAST
7   ESR1
8   ESR1-CCDC170
9   BCL2L14-ETV6
10  MYB-NFIB

我想在 r 中運行一個函數,該函數將創建一個新數據集(第三個),該數據集將從患者數據集的觀察中學習並與其他數據集的葯物相匹配。 例如下面這樣:

patient id breastcancergenes drug
2            ESR1            docetaxel
4            BAX             NA
6            NOTCH/MAST      carboplatin

我嘗試了 left_join 函數,但這對我沒有多大用處。 有沒有人有任何想法可以幫助我。 非常感謝!

假設第一個數據幀被稱為df1 ,那么第二個df2得到第三個你需要使用left_join加入它們,但在此之前,你需要首先使用pivot_longer使 df1 在每一行都有葯物基因對,而不是當前結構體:

library(tidyverse)
df1 <- df1 %>% 
   pivot_longer(cols=everything(),names_to = 'drug',values_to='gene')

現在,可以連接兩個數據框:

df3 <- df2 %>% left_join(df1, by=c('Breastcancergenes'='gene'))

假設它們需要完全匹配,那么也許是這種方法。 第一個數據集上的pivot_longer創建了一個基因葯物參考。 然后可以按基因left_join患者和葯物數據。

這個問題說“學習”,但我認為這是一個匹配問題而不是機器學習問題?

library(tidyverse)

drug_df <- tribble(
  ~docetaxel, ~carboplatin,
  "AR", "ACVR1C",
  "CYP3A4", "ALDH1A1",
  "ESR1", "ALDH3A1",
  "NR3C1", "ARFGEF1",
  "TACR2", "BAX",
  "TDP1", "NOTCH/MAST",
  "TP53", "BCL2L12",
  "TUBA1A", "BIRC2",
  "TUBA1B", "BRCA1"
) |> 
  pivot_longer(everything(), names_to = "drug", values_to = "gene")

patient_df <- tribble(
  ~Patient_ID, ~Breastcancergenes,
  1, "ESR1-CCDC170",
  2, "ESR1",
  3, "BCL2L14-ETV6",
  4, "ETV6-NTRK3",
  5, "MYB-NFIB",
  6, "NOTCH/MAST",
  7, "ESR1",
  8, "ESR1-CCDC170",
  9, "BCL2L14-ETV6",
  10, "MYB-NFIB"
)

patient_df |> 
  left_join(drug_df, by = c("Breastcancergenes" = "gene"))
#> # A tibble: 10 × 3
#>    Patient_ID Breastcancergenes drug       
#>         <dbl> <chr>             <chr>      
#>  1          1 ESR1-CCDC170      <NA>       
#>  2          2 ESR1              docetaxel  
#>  3          3 BCL2L14-ETV6      <NA>       
#>  4          4 ETV6-NTRK3        <NA>       
#>  5          5 MYB-NFIB          <NA>       
#>  6          6 NOTCH/MAST        carboplatin
#>  7          7 ESR1              docetaxel  
#>  8          8 ESR1-CCDC170      <NA>       
#>  9          9 BCL2L14-ETV6      <NA>       
#> 10         10 MYB-NFIB          <NA>

reprex 包於 2022-06-18 創建 (v2.0.1)

暫無
暫無

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

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