Setup Menus in Admin Panel

swanstatistika02@gmail.com

Fungsi Apply Menggunakan R

      Fungsi apply() merupakan salah satu fungsi dasar yang sangat berguna dalam mencari nilai tertentu, yang dapat diterapkan pada struktur dataframe ataupun matrix. Fungsi apply() banyak digunakan untuk menghindari pembuatan looping yang panjang. Output dari fungsi apply yang paling umum adalah dalam bentuk vektor.

bentuk umum fungsi apply: apply(data,margin,FUN,…)

  • data merupakan data frame atau matrix
  • margin merupakan teknik perhitungannya, ingin menggunakan baris (disimbolkan 1) atau kolom (disimbolkan 2)

Misalkan kita memiliki data seperti ini

df = data.frame( Nama = c('Hazan','Rahmat', 'iswandi','iswan','idham','alam','dayat'), 
                  nilaiMatematika=c(74,47,55,78,32,77,85),
                  nilaiBahasa=c(56,65,53,89,62,49,78),
                  nilaiIPA=c(67,52,45,88,42,65,82))

df
     Nama nilaiMatematika nilaiBahasa nilaiIPA
1   Hazan              74          56       67
2  Rahmat              47          65       52
3 iswandi              55          53       45
4   iswan              78          89       88
5   idham              32          62       42
6    alam              77          49       65
7   dayat              85          78       82

Baris

Untuk menghitung nilai tertentu pada setiap baris, digunakan margin=1, misalkan ingin dihitung nilai rata-ratanya untuk baris

ratabaris=apply(df[,-1],1,mean)
ratabaris
[1] 65.66667 54.66667 51.00000 85.00000 45.33333 63.66667 81.66667

Bisa juga jika ingin dihitung nilai rata-rata, min, max, median, var dan standar deviasi untuk setiap baris kemudian menggabungkannyaa kedalam dataframe, bisa dibuat sintaksnya sebagai berikut:

  • rata-rata per baris
df1<-df
df1$ratabaris<-apply(df[,-1],1,mean)
df1
     Nama nilaiMatematika nilaiBahasa nilaiIPA ratabaris
1   Hazan              74          56       67  65.66667
2  Rahmat              47          65       52  54.66667
3 iswandi              55          53       45  51.00000
4   iswan              78          89       88  85.00000
5   idham              32          62       42  45.33333
6    alam              77          49       65  63.66667
7   dayat              85          78       82  81.66667
  • maksimum per baris
df1$maximum = apply(df[,-1], 1, max)
df1
     Nama nilaiMatematika nilaiBahasa nilaiIPA ratabaris maximum
1   Hazan              74          56       67  65.66667      74
2  Rahmat              47          65       52  54.66667      65
3 iswandi              55          53       45  51.00000      55
4   iswan              78          89       88  85.00000      89
5   idham              32          62       42  45.33333      62
6    alam              77          49       65  63.66667      77
7   dayat              85          78       82  81.66667      85
  • minimum per baris
df1$minim = apply(df[,-1], 1, min)
df1
     Nama nilaiMatematika nilaiBahasa nilaiIPA ratabaris maximum minim
1   Hazan              74          56       67  65.66667      74    56
2  Rahmat              47          65       52  54.66667      65    47
3 iswandi              55          53       45  51.00000      55    45
4   iswan              78          89       88  85.00000      89    78
5   idham              32          62       42  45.33333      62    32
6    alam              77          49       65  63.66667      77    49
7   dayat              85          78       82  81.66667      85    78
  • median per baris
df1$median = apply(df[,-1], 1, median)
df1
     Nama nilaiMatematika nilaiBahasa nilaiIPA ratabaris maximum minim median
1   Hazan              74          56       67  65.66667      74    56     67
2  Rahmat              47          65       52  54.66667      65    47     52
3 iswandi              55          53       45  51.00000      55    45     53
4   iswan              78          89       88  85.00000      89    78     88
5   idham              32          62       42  45.33333      62    32     42
6    alam              77          49       65  63.66667      77    49     65
7   dayat              85          78       82  81.66667      85    78     82
  • varians per baris
df1$var = apply(df[,-1], 1, var)
df1
     Nama nilaiMatematika nilaiBahasa nilaiIPA ratabaris maximum minim median
1   Hazan              74          56       67  65.66667      74    56     67
2  Rahmat              47          65       52  54.66667      65    47     52
3 iswandi              55          53       45  51.00000      55    45     53
4   iswan              78          89       88  85.00000      89    78     88
5   idham              32          62       42  45.33333      62    32     42
6    alam              77          49       65  63.66667      77    49     65
7   dayat              85          78       82  81.66667      85    78     82
        var
1  82.33333
2  86.33333
3  28.00000
4  37.00000
5 233.33333
6 197.33333
7  12.33333
  • standardeviasi per baris
df1$std = apply(df[,-1], 1, sd)
df1
     Nama nilaiMatematika nilaiBahasa nilaiIPA ratabaris maximum minim median
1   Hazan              74          56       67  65.66667      74    56     67
2  Rahmat              47          65       52  54.66667      65    47     52
3 iswandi              55          53       45  51.00000      55    45     53
4   iswan              78          89       88  85.00000      89    78     88
5   idham              32          62       42  45.33333      62    32     42
6    alam              77          49       65  63.66667      77    49     65
7   dayat              85          78       82  81.66667      85    78     82
        var       std
1  82.33333  9.073772
2  86.33333  9.291573
3  28.00000  5.291503
4  37.00000  6.082763
5 233.33333 15.275252
6 197.33333 14.047538
7  12.33333  3.511885

Kolom

Selanjutnya untuk setiap kolom menggunakan nilai margin=2, misal dihitung rata-ratanya untuk setiap kolom

ratakolom=apply(df[,-1],2,mean)
ratakolom
nilaiMatematika     nilaiBahasa        nilaiIPA 
       64.00000        64.57143        63.00000 

Jika ingin dihitung nilai rata-rata, min, max, median, var dan standar deviasi untuk setiap kolom kemudian menggabungkannyaa kedalam dataframe, bisa dibuat sintaksnya sebagai berikut:

  • rata-rata per kolom
ratakolom<-apply(df[,-1],2,mean)
ratakolom
nilaiMatematika     nilaiBahasa        nilaiIPA 
       64.00000        64.57143        63.00000 
  • maksimum per kolom
maximum = apply(df[,-1], 2, max)
maximum
nilaiMatematika     nilaiBahasa        nilaiIPA 
             85              89              88 
  • minimum per kolom
minim = apply(df[,-1], 2, min)
minim
nilaiMatematika     nilaiBahasa        nilaiIPA 
             32              49              42 
  • median per kolom
mediankol = apply(df[,-1], 2, median)
mediankol
nilaiMatematika     nilaiBahasa        nilaiIPA 
             74              62              65 
  • varians per kolom
varkol = apply(df[,-1], 2, var)
varkol
nilaiMatematika     nilaiBahasa        nilaiIPA 
       383.3333        205.6190        315.3333 
  • standardeviasi per kolom
stdkol = apply(df[,-1], 2, sd)
stdkol
nilaiMatematika     nilaiBahasa        nilaiIPA 
       19.57890        14.33942        17.75763 
  • menggabungkan menjadi dataframe
hasil<-rbind(ratakolom,minim,maximum,mediankol,varkol,stdkol)
rownames(hasil)<-c('rata-rata','minimum','maksimum','median','varians','standardev')
hasil
           nilaiMatematika nilaiBahasa  nilaiIPA
rata-rata          64.0000    64.57143  63.00000
minimum            32.0000    49.00000  42.00000
maksimum           85.0000    89.00000  88.00000
median             74.0000    62.00000  65.00000
varians           383.3333   205.61905 315.33333
standardev         19.5789    14.33942  17.75763

Juni 30, 2021
Copyright © 2018 PT. Angsa Statistika Indonesia