R中计算多列并分组

Kri*_*lal 2 r dplyr

我最后一个问题的答案帮助我理解了dplyr n()。但我仍然无法应用于我试图解决的问题。所以,我在这里发布数据和实际问题。数据如下

  finalCalledPartyNumber Call Day           Call Date             Block Answered Call Duration Opty ID Opty Created Date BC ID
             19183598259   Monday 2016-12-05 12:26:46 Block 2(12:30 pm)             1        5    1234              <NA>  <NA>
             17135796188   Monday 2016-12-05 12:18:24 Block 2(12:30 pm)             1       16    <NA>              <NA>  3456
             19183598259   Monday 2016-12-05 15:43:33  Block 4(5:30 pm)             1       10    <NA>              <NA>  4567
             17135796188  Tuesday 2016-12-06 11:53:50 Block 2(12:30 pm)             1       85    <NA>              <NA>  5566
             19014741000  Tuesday 2016-12-06 12:00:11 Block 2(12:30 pm)             1       42    6789              <NA>  <NA>
             19014741000  Tuesday 2016-12-06 10:43:20 Block 2(12:30 pm)             1       58    2345              <NA>  <NA>
  BC Created Date
             <NA>
             <NA>
             <NA>
             <NA>
             <NA>
             <NA>
Run Code Online (Sandbox Code Playgroud)

对于每个finalCalledPartyNumber,我想计算每个 被调用的次数,和finallCalledPartyNumber的次数。数据集很大,仅意味着没有或已创建。Opty IDBC ID<NA>Opty IDBC ID

输出:

finalCalledPartyNumber    n_opty    n_BC    n_calls
           19183598259         1       1    2
           17135796188         0       2    2
           19014741000         2       0    2
Run Code Online (Sandbox Code Playgroud)

我感谢您的帮助。谢谢。

yee*_*dle 5

n()计算每组中的行数。如果您不想计算特定列的重复项,则可以使用n_distinct()并传入列的名称。您还可以用作+count()的简写,以及部分的简写。group_by()summarize(count = n())tally()summarize

以下是不同动词和功能的演示:


library(dplyr)

mtcars %>% 
  count(cyl)
#> # A tibble: 3 x 2
#>     cyl     n
#>   <dbl> <int>
#> 1     4    11
#> 2     6     7
#> 3     8    14

mtcars %>%
  group_by(cyl) %>%
  summarize(n = n())
#> # A tibble: 3 x 2
#>     cyl     n
#>   <dbl> <int>
#> 1     4    11
#> 2     6     7
#> 3     8    14


mtcars %>%
  group_by(cyl) %>%
  tally()
#> # A tibble: 3 x 2
#>     cyl     n
#>   <dbl> <int>
#> 1     4    11
#> 2     6     7
#> 3     8    14

mtcars %>%
  group_by(cyl) %>%
  summarize(n_distinct = n_distinct(mpg))
#> # A tibble: 3 x 2
#>     cyl n_distinct
#>   <dbl>      <int>
#> 1     4          9
#> 2     6          6
#> 3     8         12

mtcars %>%
  group_by(cyl) %>%
  distinct(mpg) %>%
  tally()
#> # A tibble: 3 x 2
#>     cyl     n
#>   <dbl> <int>
#> 1     4     9
#> 2     6     6
#> 3     8    12
Run Code Online (Sandbox Code Playgroud)