A: cara menggunakan fungsi apply() pada kolom tertentu
Seringkali Anda mungkin ingin menggunakan fungsi apply() untuk menerapkan fungsi ke kolom tertentu dalam bingkai data di R.
Namun, fungsi apply() terlebih dahulu memaksa semua kolom dalam bingkai data memiliki tipe objek yang sama sebelum menerapkan suatu fungsi, yang terkadang dapat menimbulkan konsekuensi yang tidak diinginkan.
Pilihan yang lebih baik adalah fungsi lapply() , yang menggunakan sintaks dasar berikut:
df[c(' col1 ', ' col2 ')] <- lapply(df[c(' col1 ', ' col2 ')], my_function)
Contoh khusus ini menerapkan fungsi my_function hanya pada col1 dan col2 dalam bingkai data.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: menerapkan fungsi ke kolom tertentu dalam bingkai data
Misalkan kita memiliki bingkai data berikut di R:
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), points=c(19, 22, 15, NA, 14, 25, 25, 25), rebounds=c(10, 6, 3, 7, 11, 13, 9, 12), assists=c(4, 4, 3, 6, 7, 5, 10, 8)) #view data frame df team points rebound assists 1 A 19 10 4 2 A 22 6 4 3 to 15 3 3 4 A NA 7 6 5 B 14 11 7 6 B 25 13 5 7 B 25 9 10 8 B 25 12 8
Sekarang misalkan kita mendefinisikan fungsi berikut yang mengalikan nilainya dengan 2 dan kemudian menambahkan 1:
#define function
my_function <- function (x) x*2 + 1
Kita dapat menggunakan fungsi lapply() berikut untuk menerapkan fungsi ini hanya pada kolom titik dan pantulan dalam bingkai data:
#apply function to specific columns
df[c(' points ', ' rebounds ')] <- lapply(df[c(' points ', ' rebounds ')], my_function)
#view updated data frame
df
team points rebound assists
1 A 39 21 4
2 A 45 13 4
3 A 31 7 3
4 A NA 15 6
5 B 29 23 7
6 B 51 27 5
7 B 51 19 10
8 B 51 25 8
Dari hasilnya terlihat bahwa kita mengalikan setiap nilai pada kolom poin dan rebound dengan 2 lalu ditambah 1.
Perhatikan juga bahwa kolom tim dan assist tetap tidak berubah.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Panduan untuk apply(), lapply(), sapply() dan tapply() di R
Cara menggunakan fungsi transformasi di R