簡體   English   中英

如何對 tidyverse 中不同行的值求和?

[英]How do I sum values from different rows in the tidyverse?

我有一個如下所示的數據框:

   WORD       CATEGORY             n
   <fct>       <fct>           <int>
 1 A            X                  4
 2 B            X                  3
 3 C            X                  6
 4 C            Y                  3
 5 D            X                  2
 6 E            X                  2
 7 F            Y                  2

我想添加一個列sum ,根據CATEGORY將列n的值sum 因此,例如,在第 3 行和第 4 行中, sum列的值為 9。

以下是完整數據集的樣子:

   WORD       CATEGORY             n  sum
   <fct>       <fct>           <int>  <int>
 1 A            X                  4  4
 2 B            X                  3  3
 3 C            X                  6  9 
 4 C            Y                  3  9
 5 D            X                  2  2 
 6 E            X                  2  2
 7 F            Y                  2  2

我如何在 tidyverse 中做到這一點?

如果我們計算CATEGORY中唯一值的數量並將其添加到分組變量中,我們可以直接對 n 求和:

dt %>%
 group_by(WORD) %>%
 mutate(uni=length(unique(CATEGORY))) %>%
 group_by(WORD,uni) %>%
 mutate(sum=sum(n)) %>%
 ungroup %>%
 select(-uni)
# A tibble: 7 x 4
  WORD  CATEGORY     n   sum
  <fct> <fct>    <int> <int>
1 A     X            4     4
2 B     X            3     3
3 C     X            6     9
4 C     Y            3     9
5 D     X            2     2
6 E     X            2     2
7 F     Y            2     2

暫無
暫無

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

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