Dalam bahasa Indonesia, “frequency table by group using dplyr” dapat diartikan sebagai “tabel frekuensi berdasarkan kelompok menggunakan dplyr”.

Pada analisis data, tabel frekuensi adalah suatu tabel yang menunjukkan jumlah kemunculan setiap nilai pada suatu variabel. Menggunakan paket dplyr dalam bahasa pemrograman R, kita dapat dengan mudah membuat tabel frekuensi berdasarkan kelompok data.

Berikut adalah langkah-langkah untuk membuat tabel frekuensi berdasarkan kelompok menggunakan dplyr:

  1. Kelompokkan data: Gunakan fungsi group_by() untuk mengelompokkan data berdasarkan variabel tertentu. Misalnya, group_by(data, variabel) akan mengelompokkan data berdasarkan variabel yang ditentukan.

  2. Hitung frekuensi: Gunakan fungsi count() untuk menghitung frekuensi setiap nilai dalam setiap kelompok. Misalnya, count(data, variabel) akan menghitung frekuensi setiap nilai dalam variabel yang ditentukan.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
df <- data.frame(first=c(1,1,1,2,2,2),
                 second=c('a', 'a', 'b',
                          'a', 'c', 'd'))
  
df %>%
  group_by(first,second) %>%
  summarize(Freq=n())
## `summarise()` has grouped output by 'first'. You can override using the
## `.groups` argument.
## # A tibble: 5 × 3
## # Groups:   first [2]
##   first second  Freq
##   <dbl> <chr>  <int>
## 1     1 a          2
## 2     1 b          1
## 3     2 a          1
## 4     2 c          1
## 5     2 d          1
data("ToothGrowth")
df<-ToothGrowth
  
df %>%
  group_by(supp , dose) %>%
  summarize(Freq=n())
## `summarise()` has grouped output by 'supp'. You can override using the
## `.groups` argument.
## # A tibble: 6 × 3
## # Groups:   supp [2]
##   supp   dose  Freq
##   <fct> <dbl> <int>
## 1 OJ      0.5    10
## 2 OJ      1      10
## 3 OJ      2      10
## 4 VC      0.5    10
## 5 VC      1      10
## 6 VC      2      10
data_frame <- data.frame(col1 = c("Nasi","Goreng",
                                  "Bang","Rheza",
                                  "Pedas","Manis",
                                  "Asin","Pahit",
                                  "Gerobak","Motor",
                                  "Berhenti","Keliling" ),
                         grp = c(rep(c("a","b","c"),4)))
print("Original Data")
## [1] "Original Data"
print(data_frame)
##        col1 grp
## 1      Nasi   a
## 2    Goreng   b
## 3      Bang   c
## 4     Rheza   a
## 5     Pedas   b
## 6     Manis   c
## 7      Asin   a
## 8     Pahit   b
## 9   Gerobak   c
## 10    Motor   a
## 11 Berhenti   b
## 12 Keliling   c
data_frame %>%
  count(col1, grp) %>%
  
  group_by(grp) %>%          
  mutate(prop = prop.table(n))
## # A tibble: 12 × 4
## # Groups:   grp [3]
##    col1     grp       n  prop
##    <chr>    <chr> <int> <dbl>
##  1 Asin     a         1  0.25
##  2 Bang     c         1  0.25
##  3 Berhenti b         1  0.25
##  4 Gerobak  c         1  0.25
##  5 Goreng   b         1  0.25
##  6 Keliling c         1  0.25
##  7 Manis    c         1  0.25
##  8 Motor    a         1  0.25
##  9 Nasi     a         1  0.25
## 10 Pahit    b         1  0.25
## 11 Pedas    b         1  0.25
## 12 Rheza    a         1  0.25
vec <- rpois(10,30)
  
data_frame <- data.frame(col1 = vec)
print("Original Data")
## [1] "Original Data"
print(data_frame)
##    col1
## 1    36
## 2    37
## 3    22
## 4    23
## 5    31
## 6    31
## 7    35
## 8    23
## 9    28
## 10   33
data_frame %>%
  

  count(col1) %>%        
  mutate(prop = prop.table(n))
##   col1 n prop
## 1   22 1  0.1
## 2   23 2  0.2
## 3   28 1  0.1
## 4   31 2  0.2
## 5   33 1  0.1
## 6   35 1  0.1
## 7   36 1  0.1
## 8   37 1  0.1
data_frame <- data.frame(col1 = c(1,3,5,6,23,6,2,5,7,16,8,
                                  9,36,7,12,1,14,2,12,30))
print("Original Data")
## [1] "Original Data"
print(data_frame)
##    col1
## 1     1
## 2     3
## 3     5
## 4     6
## 5    23
## 6     6
## 7     2
## 8     5
## 9     7
## 10   16
## 11    8
## 12    9
## 13   36
## 14    7
## 15   12
## 16    1
## 17   14
## 18    2
## 19   12
## 20   30
data_frame %>%
  
  count(col1) %>%        
  mutate(prop = prop.table(n))
##    col1 n prop
## 1     1 2 0.10
## 2     2 2 0.10
## 3     3 1 0.05
## 4     5 2 0.10
## 5     6 2 0.10
## 6     7 2 0.10
## 7     8 1 0.05
## 8     9 1 0.05
## 9    12 2 0.10
## 10   14 1 0.05
## 11   16 1 0.05
## 12   23 1 0.05
## 13   30 1 0.05
## 14   36 1 0.05