簡體   English   中英

使用 dplyr 按組匯總比例

[英]Using dplyr to summarize summed proportions by groups

我一直在嘗試按多個組匯總數據,其中新列應該是這些組對一列與另一列的比例的匯總。 因為這兩列從不都包含一個值,所以不能按行計算它們的比例。 下面是一個例子。

按,P_Common 和 Number7 組,我想要總 N_count/A_count

structure(list(P_Common = c("B", "B", "C", "C", "D", "E", "E", 
"F", "G", "G", "B", "G", "E", "D", "F", "C"), Number_7 = c(1L, 
1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 3L, 1L, 2L, 1L, 1L), 
    N_count = c(0L, 4L, 22L, NA, 7L, 0L, 44L, 16L, NA, NA, NA, 
    NA, NA, NA, NA, NA), A_count = c(NA, NA, NA, NA, NA, NA, 
    NA, NA, 0L, 4L, 7L, NA, 23L, 4L, 7L, 17L)), class = "data.frame", row.names = c(NA, 
-16L))


P_Common    Number_7    N_count A_count
B           1           0       NA
B           1           4       NA
C           1           22      NA
C           1           NA      NA
D           2           7       NA
E           2           0       NA
E           2           44      NA
F           2           16      NA
B           1           NA      7
G           3           NA      NA
E           1           NA      23
D           2           NA      4
F           1           NA      7
C           1           NA      17

在這個例子中,會有相當多的 0 / NA 值,但沒關系,它們可以保留,但總的來說它會變成

P_Common    Number_7   Propo
B           1          0.571428571
C           1          1.294117647
D           2          1.75
... etc

你可以做:

df %>% 
  group_by(P_Common, Number_7) %>% 
  summarise(Propo = sum(N_count, na.rm = T) / sum(A_count, na.rm = T))
  P_Common Number_7   Propo
  <chr>       <int>   <dbl>
1 B               1   0.571
2 C               1   1.29 
3 D               2   1.75 
4 E               1   0    
5 E               2 Inf    
6 F               1   0    
7 F               2 Inf    
8 G               3   0    

暫無
暫無

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

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