Bu hafta çevrim içi dersimizde veri düzenlemede count, group_by, acroos, summarize gibi diğer fonksiyonları öğrendik. Bu hafta öğrenciklerimi farklı bir veri setinde deneyeceğim.
Öncelikle mtcars veri setini yüklüyorum.
veri <- mtcars
Count değişkenini kullanabilmek için dplyr paketini yüklüyorum.
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
count(mtcars)
## n
## 1 32
Aynı işlemi pipe operatörü kullanarak da yapabiliriz. Pipe operatörünü kullanabilmek için magrittr paketini yüklüyorum. Veri setindeki herhangi bir değişkeni kullanmak için count kullandık. Mpg yani miles per galon değişkenine göre küçükten büyüğe sıralamak için aşağıdaki kodu kullanıyorum.
library(magrittr)
veri %>% count(mpg, sort=TRUE)
## mpg n
## 1 10.4 2
## 2 15.2 2
## 3 19.2 2
## 4 21.0 2
## 5 21.4 2
## 6 22.8 2
## 7 30.4 2
## 8 13.3 1
## 9 14.3 1
## 10 14.7 1
## 11 15.0 1
## 12 15.5 1
## 13 15.8 1
## 14 16.4 1
## 15 17.3 1
## 16 17.8 1
## 17 18.1 1
## 18 18.7 1
## 19 19.7 1
## 20 21.5 1
## 21 24.4 1
## 22 26.0 1
## 23 27.3 1
## 24 32.4 1
## 25 33.9 1
Burada vs yani vites sayısına göre mpg değişkeninin sayısını tablolaştırmak istedim fakat tabloda vs değişkeni için bir sütun bulunmuyor. Bunun nedenini anlayamadım. Kübra hocaya soracağım.
veri %>% count(mpg, wt=vs, sort=TRUE)
## mpg n
## 1 21.4 2
## 2 22.8 2
## 3 30.4 2
## 4 17.8 1
## 5 18.1 1
## 6 19.2 1
## 7 21.5 1
## 8 24.4 1
## 9 27.3 1
## 10 32.4 1
## 11 33.9 1
## 12 10.4 0
## 13 13.3 0
## 14 14.3 0
## 15 14.7 0
## 16 15.0 0
## 17 15.2 0
## 18 15.5 0
## 19 15.8 0
## 20 16.4 0
## 21 17.3 0
## 22 18.7 0
## 23 19.7 0
## 24 21.0 0
## 25 26.0 0
veri %>%
summarize(ortalama=mean(mpg))
## ortalama
## 1 20.09062
veri %>%
summarize (
n=n(),
ortalama=mean(mpg),
sd=sd(mpg),
minimum=min(mpg),
maksimum=max(mpg)
)
## n ortalama sd minimum maksimum
## 1 32 20.09062 6.026948 10.4 33.9
veri %>%
group_by(vs) %>%
summarize (
n=n(),
ortalama=mean(mpg),
sd=sd(mpg),
minimum=min(mpg),
maksimum=max(mpg)
)
## # A tibble: 2 × 6
## vs n ortalama sd minimum maksimum
## <dbl> <int> <dbl> <dbl> <dbl> <dbl>
## 1 0 18 16.6 3.86 10.4 26
## 2 1 14 24.6 5.38 17.8 33.9
Birden fazla değişken için aynı işlemleri yapabilmek için across fonksiyonunu kullanıyoruz. Bu kodu yazayım derken bir kaç temel hata yaptım. Örneğin, .cols yazdıktan sonra parantez açtım. Ama olması gereken hangi sütunlarda değişkenleri tanımlaması gerektiğini sisteme anlatmak. Bu sebeple, eşittir koyarak değişkenleri belirtmem gerekiyordu. Sonra hatamı düzelttikten sonra yine temel bir hata yaptım. değişkenlerin sütunlarını yazarken başına c fonksiyonunu koymayı unuttum. Hata verince hatamı fark edip düzelttim.
veri %>%
summarise(across(.cols= c(mpg, vs,cyl)))
## Warning: Returning more (or less) than 1 row per `summarise()` group was deprecated in
## dplyr 1.1.0.
## ℹ Please use `reframe()` instead.
## ℹ When switching from `summarise()` to `reframe()`, remember that `reframe()`
## always returns an ungrouped data frame and adjust accordingly.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## mpg vs cyl
## 1 21.0 0 6
## 2 21.0 0 6
## 3 22.8 1 4
## 4 21.4 1 6
## 5 18.7 0 8
## 6 18.1 1 6
## 7 14.3 0 8
## 8 24.4 1 4
## 9 22.8 1 4
## 10 19.2 1 6
## 11 17.8 1 6
## 12 16.4 0 8
## 13 17.3 0 8
## 14 15.2 0 8
## 15 10.4 0 8
## 16 10.4 0 8
## 17 14.7 0 8
## 18 32.4 1 4
## 19 30.4 1 4
## 20 33.9 1 4
## 21 21.5 1 4
## 22 15.5 0 8
## 23 15.2 0 8
## 24 13.3 0 8
## 25 19.2 0 8
## 26 27.3 1 4
## 27 26.0 0 4
## 28 30.4 1 4
## 29 15.8 0 8
## 30 19.7 0 6
## 31 15.0 0 8
## 32 21.4 1 4
veri %>%
summarise(across(.cols= c(mpg, vs,cyl),.fns=mean, .names="{col}_ortalama"))
## mpg_ortalama vs_ortalama cyl_ortalama
## 1 20.09062 0.4375 6.1875
veri %>%
summarise(across
(.cols= c(mpg, vs,cyl),
.fns=list(ortalama= ~mean(.),
sd= ~sd(.)
)))
## mpg_ortalama mpg_sd vs_ortalama vs_sd cyl_ortalama cyl_sd
## 1 20.09062 6.026948 0.4375 0.5040161 6.1875 1.785922
veri %>%
top_n(2)
## Selecting by carb
## mpg cyl disp hp drat wt qsec vs am gear carb
## Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
## Maserati Bora 15.0 8 301 335 3.54 3.57 14.6 0 1 5 8
veri %>%
select(mpg) %>%
arrange(desc(mpg)) %>%
top_n(3)
## Selecting by mpg
## mpg
## Toyota Corolla 33.9
## Fiat 128 32.4
## Honda Civic 30.4
## Lotus Europa 30.4