Kurs
Ücretsiz R'ye Giriş kursumuzu almak isterseniz, bağlantı burada.
Faktör Düzeyleri
Bir veri setini ilk aldığınızda, genellikle belirli faktör düzeylerine sahip faktörler içerdiğini fark edersiniz. Ancak, bazen bu düzeylerin adlarını açıklık ya da başka nedenlerle değiştirmek isteyebilirsiniz. R, bunu levels() fonksiyonu ile yapmanıza olanak tanır:
levels(factor_vector) <- c("name1", "name2",...)
İyi bir örnek, bir anket tarafından size sağlanan ham verilerdir. Her anket için yaygın bir soru, katılımcının cinsiyetidir. Burada basitlik adına yalnızca iki kategori kaydedilmiştir: "M" ve "F". (Genellikle anket verileri için daha fazla kategori gerekir; her durumda kategorik veriyi depolamak için bir faktör kullanırsınız.)
survey_vector <- c("M", "F", "F", "M", "M")
Cinsiyeti "M" ve "F" kısaltmalarıyla kaydetmek, veriyi kalem-kağıtla toplarken kullanışlı olabilir; ancak veriyi analiz ederken karışıklığa yol açabilir. Bu noktada, açıklık sağlamak için faktör düzeylerini "M" ve "F" yerine "Male" ve "Female" olarak değiştirmek isteyebilirsiniz.
Dikkat: Düzeyleri atadığınız sıranın önemi vardır. levels(factor_survey_vector) yazarsanız, çıktının [1] "F" "M" olduğunu görürsünüz. Vektörü oluştururken faktörün düzeylerini belirtmezseniz, R bunları alfabetik olarak atar. "F" ifadesini "Female" ile ve "M" ifadesini "Male" ile doğru eşlemek için düzeyler bu sırayla c("Female", "Male") olarak ayarlanmalıdır.
Talimatlar
survey_vector'dan bir faktör vektörü oluşturan kodu inceleyin. Sonraki talimattafactor_survey_vector'u kullanmalısınız.factor_survey_vector'un faktör düzeylerinic("Female", "Male")olarak değiştirin. Burada vektör elemanlarının sırasına dikkat edin.
# 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.")
Faktör düzeylerini hangi sırayla yazmanız gerektiğine dikkat edin. İpucu: levels(factor_survey_vector) yazdığınızda düzeylerin hangi sırayla yazdırıldığına bakın.
Bir Faktörü Özetleme
Bu kursu bitirdikten sonra, R'deki favori fonksiyonlarınızdan biri summary() olacaktır. Bu fonksiyon size bir değişkenin içeriğine hızlı bir genel bakış sunar:
summary(my_var)
Anketimize geri dönersek, çalışmanızda kaç "Male" ve kaç "Female" yanıtı olduğunu bilmek isteyebilirsiniz. Bu sorunun yanıtını summary() fonksiyonu verir.
Talimatlar
survey_vector ve factor_survey_vector için bir summary() isteyin. Her iki vektörün sonuçlarını yorumlayın. Bu durumda ikisi de eşit derecede yararlı mı?
# 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.")
summary() fonksiyonunu hem survey_vector hem de factor_survey_vector üzerinde çağırın; bu kadar basit!
Sıralı Faktörler
"Male" ve "Female" sırasız (ya da nominal) faktör düzeyleri olduğundan, R size büyüktür operatörünün anlamlı olmadığını belirten bir uyarı mesajı verir. Daha önce görüldüğü gibi, R bu tür faktörler için düzeylere eşit değer atar.
Ancak bu her zaman böyle değildir! Bazen kategorileri arasında doğal bir sıralama olan faktörlerle de uğraşırsınız. Böyle bir durumda, bu bilgiyi R'ye aktardığınızdan emin olmalısınız...
Diyelim ki beş veri analistinden oluşan bir araştırma ekibine liderlik ediyorsunuz ve performanslarını değerlendirmek istiyorsunuz. Bunu yapmak için hızlarını takip ediyor, her analisti "slow", "medium" veya "fast" olarak değerlendiriyor ve sonuçları speed_vector içinde saklıyorsunuz.
Talimatlar
İlk adım olarak, her analist için birer giriş olmak üzere 5 öğe içeren bir vektörü speed_vector'a atayın. Her giriş "slow", "medium" veya "fast" olmalıdır. Aşağıdaki listeyi kullanın:
- Analist 1 medium,
- Analist 2 slow,
- Analist 3 slow,
- Analist 4 medium ve
- Analist 5 fast.
Şimdilik bunların faktör olduğunu belirtmenize gerek yok.
# 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.")
speed_vector'a "slow", "medium" veya "fast" karakter dizilerini içeren bir vektör atayın.
Bu kurstan daha fazlasını öğrenmek isterseniz, bağlantı burada.
R'de Faktörler Eğitimi'ne de göz atın.
