Jika Anda ingin mengikuti kursus Intro to R gratis kami, berikut tautannya.
Tingkat Faktor
Saat pertama kali mendapatkan sebuah himpunan data, Anda sering melihat bahwa di dalamnya terdapat faktor dengan tingkat faktor tertentu. Namun, terkadang Anda ingin mengubah nama tingkat tersebut demi kejelasan atau alasan lainnya. R memungkinkan Anda melakukan ini dengan fungsi levels():
levels(factor_vector) <- c("name1", "name2",...)
Ilustrasi yang baik adalah data mentah yang diberikan oleh sebuah survei. Pertanyaan umum dalam setiap kuesioner adalah jenis kelamin responden. Di sini, demi kesederhanaan, hanya dua kategori yang dicatat, "M" dan "F". (Biasanya Anda membutuhkan lebih banyak kategori untuk data survei; bagaimanapun, Anda menggunakan faktor untuk menyimpan data kategorikal.)
survey_vector <- c("M", "F", "F", "M", "M")
Mencatat jenis kelamin dengan singkatan "M" dan "F" bisa jadi praktis jika Anda mengumpulkan data dengan pena dan kertas, tetapi dapat menimbulkan kebingungan saat menganalisis data. Pada tahap itu, Anda sering ingin mengubah tingkat faktor menjadi "Male" dan "Female" alih-alih "M" dan "F" demi kejelasan.
Perhatikan: urutan saat Anda menetapkan tingkat sangat penting. Jika Anda mengetik levels(factor_survey_vector), Anda akan melihat keluarannya [1] "F" "M". Jika Anda tidak menentukan tingkat faktor saat membuat vektor, R akan menetapkannya secara alfabetis. Untuk memetakan "F" ke "Female" dan "M" ke "Male" dengan benar, tingkatnya harus diatur menjadi c("Female", "Male"), dalam urutan ini.
Instruksi
Periksa kode yang membangun vektor faktor dari survey_vector. Anda harus menggunakan factor_survey_vector pada instruksi berikutnya.
Ubah tingkat faktor dari factor_survey_vector menjadi c("Female", "Male"). Perhatikan urutan elemen vektor di sini.
# no pec
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <-
factor_survey_vector
# Code to build factor_survey_vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of factor_survey_vector
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
msg = "Do not change the definition of survey_vector!" test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) msg = "Do not change or remove the code to create the factor vector." test_function("factor", "x", not_called_msg = msg, incorrect_msg = msg) # MC-note: ideally would want to test assign operator <-, and have it highlight whole line. # MC-note: or negate this test_student_typed, to highlight where they type this incorrect phrase # test_student_typed('c("Male", "Female")') test_object("factor_survey_vector", eq_condition = "equal", incorrect_msg = paste("Did you assign the correct factor levels to factor_survey_vector? Use levels(factor_survey_vector) <- c(\"Female\", \"Male\"). Remember that R is case sensitive!")) success_msg("Wonderful! Proceed to the next exercise.")
Perhatikan urutan saat Anda harus mengetik tingkat faktor. Petunjuk: lihat urutan tingkat yang dicetak saat mengetik levels(factor_survey_vector).
Meringkas Sebuah Faktor
Setelah menyelesaikan kursus ini, salah satu fungsi favorit Anda di R akan menjadi summary(). Ini akan memberi Anda gambaran cepat tentang isi sebuah variabel:
summary(my_var)
Kembali ke survei kita, Anda ingin mengetahui berapa banyak respons "Male" yang Anda miliki dalam studi Anda, dan berapa banyak respons "Female". Fungsi summary() memberikan jawaban untuk pertanyaan ini.
Instruksi
Minta summary() dari survey_vector dan factor_survey_vector. Tafsirkan hasil dari kedua vektor tersebut. Apakah keduanya sama-sama berguna dalam kasus ini?
# Build factor_survey_vector with clean levels
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
# Generate summary for survey_vector
# Generate summary for factor_survey_vector
# Build factor_survey_vector with clean levels
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
# Generate summary for survey_vector
summary(survey_vector)
# Generate summary for factor_survey_vector
summary(factor_survey_vector)
msg = "Do not change anything about the first few lines that define survey_vector and factor_survey_vector." test_object("survey_vector", undefined_msg = msg, incorrect_msg = msg) test_object("factor_survey_vector", eq_condition = "equal", undefined_msg = msg, incorrect_msg = msg) msg <- "Have you correctly used summary() to generate a summary for %s?" test_output_contains("summary(survey_vector)", incorrect_msg = sprintf(msg, "survey_vector")) test_output_contains("summary(factor_survey_vector)", incorrect_msg = sprintf(msg, "factor_survey_vector")) success_msg("Nice! Have a look at the output. The fact that you identified \"Male\" and \"Female\" as factor levels in factor_survey_vector enables R to show the number of elements for each category.")
Panggil fungsi summary() pada survey_vector dan factor_survey_vector, sesederhana itu!
Faktor Berurutan
Karena "Male" dan "Female" adalah tingkat faktor yang tidak berurutan (atau nominal), R mengembalikan pesan peringatan, memberi tahu Anda bahwa operator lebih besar dari tidak bermakna. Seperti terlihat sebelumnya, R melekatkan nilai yang sama pada tingkat untuk faktor seperti ini.
Tetapi ini tidak selalu demikian! Terkadang Anda juga akan berurusan dengan faktor yang memang memiliki pengurutan alami antar kategorinya. Jika demikian, kita harus memastikan untuk menyampaikan informasi ini ke R...
Misalkan Anda memimpin tim riset yang terdiri dari lima analis data dan Anda ingin mengevaluasi kinerja mereka. Untuk melakukannya, Anda melacak kecepatan mereka, mengevaluasi setiap analis sebagai "slow", "medium" atau "fast", dan menyimpan hasilnya dalam speed_vector.
Instruksi
Sebagai langkah pertama, tetapkan speed_vector sebuah vektor dengan 5 entri, satu untuk setiap analis. Setiap entri harus berupa "slow", "medium", atau "fast". Gunakan daftar berikut:
Analis 1 adalah medium,
Analis 2 adalah slow,
Analis 3 adalah slow,
Analis 4 adalah medium dan
Analis 5 adalah fast.
Belum perlu menyatakan ini sebagai faktor.
# Create speed_vector
speed_vector <-
# Create speed_vector
speed_vector <- c("medium", "slow", "slow", "medium", "fast")
test_object("speed_vector",
incorrect_msg = "speed_vector should be a vector with 5 entries, one for each analyst's speed rating. Don't use capital letters; R is case sensitive!") success_msg("A job well done! Continue to the next exercise.")
Tetapkan ke speed_vector sebuah vektor yang berisi string karakter "slow", "medium", atau "fast".
Jika Anda ingin belajar lebih banyak dari kursus ini, berikut tautannya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.