簡體   English   中英

tidyverse 中的組低計數 R

[英]Group low counts in tidyverse R

我目前正在處理一個包含 714 行的 tibble 格式的數據集(每行對應一個特定於給定病毒的新序列,但如果有意義的話,多個序列來自同一病毒)。

因此,如果您查看數據,例如有 21 個 B19 序列。

我想在我的 tibble 中創建一個新專欄,我將所有存在幾次(低於 50 計數)的病毒株歸為一組(“其他”),並且所有具有高計數的病毒株都保留在它們自己的組中所以CMV就是CMV。 因此,這將是一個新列添加到小標題中,每次出現低計數菌株時,“newID”將是其他列(見圖 1)。 到現在為止,我使用了'mutate(newID = case_when(Origin == "CMV" ~ "CMV") 然后根據計數手動對其進行分組(參見數據圖),但應該有一個更容易和更少的“硬編碼”選項,對吧?

數據:

 1 B19         21
 2 BKPyV        8
 3 CMV        161
 4 Covid-19    68
 5 EBV        204
 6 FLU-A       22
 7 HAdV-C      10
 8 hCoV        84
 9 HHV-1       27
10 HHV-2        3
11 HHV-6B       1
12 HIV-1       18
13 HMPV         3
14 HPV         37
15 JCPyV        4
16 NWV         12
17 unknown      9
18 VACV         9
19 VZV         13

我希望你能幫忙!

您可以使用fct_lump() package (tidyverse) 中的forcats ()。

根據您的統計,我正在使用排名前 4 的病毒:

library(forcats)
data %>% 
  mutate(virus = as.factor(virus)) %>% 
  mutate(newID = fct_lump(virus, 4, w = count))

Output 是:

# A tibble: 19 × 4
      id virus    count newID
   <dbl> <fct>    <dbl> <fct>
 1     1 B19         21 Other
 2     2 BKPyV        8 Other
 3     3 CMV        161 CMV  
 4     4 Covid-19    68 Covid-19
 5     5 EBV        204 EBV  
 6     6 FLU-A       22 Other
 7     7 HAdV-C      10 Other
 8     8 hCoV        84 hCoV 
 9     9 HHV-1       27 Other
10    10 HHV-2        3 Other
11    11 HHV-6B       1 Other
12    12 HIV-1       18 Other
13    13 HMPV         3 Other
14    14 HPV         37 Other
15    15 JCPyV        4 Other
16    16 NWV         12 Other
17    17 unknown      9 Other
18    18 VACV         9 Other
19    19 VZV         13 Other

我用了:

library(dplyr)

data <- tribble(
  ~id, ~virus, ~count,
  1, "B19"   ,      21,
  2, "BKPyV"  ,      8,
  3, "CMV"    ,    161,
  4, "Covid-19",    68,
  5, "EBV"      ,  204,
  6, "FLU-A"  ,     22,
  7, "HAdV-C"  ,   10,
  8, "hCoV"   ,     84,
  9, "HHV-1" ,     27,
  10, "HHV-2"  ,      3,
  11, "HHV-6B" ,      1,
  12, "HIV-1"  ,     18,
  13, "HMPV"   ,      3,
  14, "HPV"   ,      37,
  15, "JCPyV"  ,      4,
  16, "NWV"     ,    12,
  17, "unknown"  ,    9,
  18, "VACV"    ,     9,
  19, "VZV"     ,    13  
)

暫無
暫無

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

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