R factor’lari
Factorlar
Factorlar ma’lumotlarni toifalarga ajratish uchun ishlatiladi. Factorlarga misollar:
- Demografiya: erkak/ayol
- Musiqa: Rock, Pop, Classic, Jazz
- Mashg‘ulot: kuch, chidamlilik
Factor yaratish uchun factor() funksiyasidan foydalaning va unga argument sifatida vektor bering:
Misol
# Create a factor
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
# Print the factor
music_genre
Natija:
[1] Jazz Rock Classic Classic Pop Jazz Rock Jazz Levels: Classic Jazz Pop Rock
Yuqoridagi misoldan ko‘rinib turibdiki, factor to‘rtta darajaga (toifaga) ega: Classic, Jazz, Pop va Rock.
Faqat darajalarni chiqarish uchun levels() funksiyasidan foydalaning:
Misol
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
levels(music_genre)
Natija:
[1] "Classic" "Jazz" "Pop" "Rock"
factor() funksiyasi ichiga levels argumentini qo‘shib, darajalarni o‘zingiz belgilashingiz ham mumkin:
Misol
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Other"))
levels(music_genre)
Natija:
[1] "Classic" "Jazz" "Pop" "Rock" "Other"
Factor uzunligi
Factorda nechta element borligini bilish uchun length() funksiyasidan foydalaning:
Misol
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
length(music_genre)
Natija:
[1] 8
Factorlarga murojaat qilish
Factor elementlariga murojaat qilish uchun [] qavslari yordamida indeks raqamini ko‘rsating:
Misol
Uchinchi elementga murojaat qiling:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3]
Natija:
[1] Classic Levels: Classic Jazz Pop Rock
Element qiymatini o‘zgartirish
Muayyan elementning qiymatini o‘zgartirish uchun uning indeks raqamiga murojaat qiling:
Misol
Uchinchi elementning qiymatini o‘zgartiring:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3] <- "Pop"
music_genre[3]
Natija:
[1] Pop Levels: Classic Jazz Pop Rock
E’tibor bering, agar qiymat factorda oldindan ko‘rsatilmagan bo‘lsa, muayyan elementning qiymatini unga o‘zgartira olmaysiz. Quyidagi misol xatoga olib keladi:
Misol
Uchinchi element ("Classic") qiymatini mavjud bo‘lmagan/oldindan belgilanmagan qiymatga ("Opera") o‘zgartirishga urinish:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"))
music_genre[3] <- "Opera"
music_genre[3]
Natija:
Warning message: In `[<-.factor`(`*tmp*`, 3, value = "Opera") : invalid factor level, NA generated
Biroq, agar uni levels argumenti ichida oldindan ko‘rsatgan bo‘lsangiz, bu ishlaydi:
Misol
Uchinchi elementning qiymatini o‘zgartiring:
music_genre <- factor(c("Jazz", "Rock", "Classic", "Classic", "Pop", "Jazz", "Rock", "Jazz"), levels = c("Classic", "Jazz", "Pop", "Rock", "Opera"))
music_genre[3] <- "Opera"
music_genre[3]
Natija:
[1] Opera Levels: Classic Jazz Pop Rock Opera
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
