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:

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

B. 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)
## Warning: package 'dplyr' was built under R version 4.2.2
## 
## 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

Membuat data frame :

data_frame <- data.frame(col1 = c("Mie","Ayam",
                                  "Singgi","Aditya",
                                  "Asam","Pahit",
                                  "Asin","Pedas",
                                  "Toko","Keliling",
                                  "Masih","lanjut" ),
                         grp = c(rep(c("a","b","c"),4)))
print("Original Data")
## [1] "Original Data"
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 Aditya   a         1  0.25
##  2 Asam     b         1  0.25
##  3 Asin     a         1  0.25
##  4 Ayam     b         1  0.25
##  5 Keliling a         1  0.25
##  6 Masih    b         1  0.25
##  7 Mie      a         1  0.25
##  8 Pahit    c         1  0.25
##  9 Pedas    b         1  0.25
## 10 Singgi   c         1  0.25
## 11 Toko     c         1  0.25
## 12 lanjut   c         1  0.25
vec <- rpois(10,30)
  
data_frame <- data.frame(col1 = vec)
print("Original Data")
## [1] "Original Data"
print(data_frame)
##    col1
## 1    33
## 2    24
## 3    31
## 4    31
## 5    36
## 6    29
## 7    28
## 8    27
## 9    33
## 10   37
data_frame %>%
  

  count(col1) %>%        
  mutate(prop = prop.table(n))
##   col1 n prop
## 1   24 1  0.1
## 2   27 1  0.1
## 3   28 1  0.1
## 4   29 1  0.1
## 5   31 2  0.2
## 6   33 2  0.2
## 7   36 1  0.1
## 8   37 1  0.1
##   col1 n prop
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