200 gözlem ve 23 değişkenden oluşan “BOLUM_5_Alistirma_Veri.csv” dosyasını okuyarak “alistirma_veri” nesnesine atayınız.”alistirma_veri” nesnesinde yer alan değişkenler sırasıyla öğrencilerin düzeyleri(1-4 arası), öğrencilerin bulandıkları şubeler (A ve B olmak üzere), öğrencilerin cinsiyeti, öğrencilerin 20 maddeye verdikleri yanıtlardan oluşmaktadır.
getwd()
## [1] "/Users/burcakaydin/Desktop/OLC750"
alistirma_veri<-read.csv("/Users/burcakaydin/Desktop/OLC750/BOLUM_5_alistirma_veri.csv", header=FALSE, sep = ";")
head(alistirma_veri)
## V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21
## 1 1 A kiz 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 2 1 A kiz 0 0 1 1 0 0 1 1 1 1 0 1 0 0 0 1 0 1
## 3 1 A erkek 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
## 4 1 A erkek 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 0
## 5 1 A kiz 0 0 1 1 0 1 1 1 0 0 1 1 1 1 0 1 0 1
## 6 1 B kiz 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0
## V22 V23
## 1 1 0
## 2 0 0
## 3 0 1
## 4 0 0
## 5 1 1
## 6 0 0
“alistirma_veri” nesnesinin boyutlarını yazdırınız.
dim(alistirma_veri)
## [1] 200 23
“alistirma_veri” nesnesinin değişkenlerini “duzey”, “sube”, “cinsiyet”, “madde_1” ve “madde_20” olarak adlandırınız.
names(alistirma_veri) <- c("duzey", "sube", "cinsiyet",
paste("madde", 1:20, sep = "_"))
head(alistirma_veri)
## duzey sube cinsiyet madde_1 madde_2 madde_3 madde_4 madde_5 madde_6 madde_7
## 1 1 A kiz 0 0 0 0 0 0 0
## 2 1 A kiz 0 0 1 1 0 0 1
## 3 1 A erkek 0 0 0 1 0 0 0
## 4 1 A erkek 0 1 0 1 1 1 0
## 5 1 A kiz 0 0 1 1 0 1 1
## 6 1 B kiz 0 0 0 0 0 1 0
## madde_8 madde_9 madde_10 madde_11 madde_12 madde_13 madde_14 madde_15
## 1 0 0 0 0 0 0 0 0
## 2 1 1 1 0 1 0 0 0
## 3 0 0 0 0 0 0 0 0
## 4 0 1 0 1 0 1 0 0
## 5 1 0 0 1 1 1 1 0
## 6 0 0 1 0 0 1 1 0
## madde_16 madde_17 madde_18 madde_19 madde_20
## 1 0 0 0 1 0
## 2 1 0 1 0 0
## 3 0 0 0 0 1
## 4 0 0 0 0 0
## 5 1 0 1 1 1
## 6 0 1 0 0 0
“alistirma_veri” nesnesinin ilk 10 ve son 5 satırını yazdırınız.
head(alistirma_veri, 10); tail(alistirma_veri,5)
## duzey sube cinsiyet madde_1 madde_2 madde_3 madde_4 madde_5 madde_6 madde_7
## 1 1 A kiz 0 0 0 0 0 0 0
## 2 1 A kiz 0 0 1 1 0 0 1
## 3 1 A erkek 0 0 0 1 0 0 0
## 4 1 A erkek 0 1 0 1 1 1 0
## 5 1 A kiz 0 0 1 1 0 1 1
## 6 1 B kiz 0 0 0 0 0 1 0
## 7 1 B erkek 0 0 0 0 0 1 1
## 8 1 B erkek 0 1 1 1 0 1 1
## 9 1 B kiz 1 0 1 1 1 1 1
## 10 1 B kiz 0 1 1 0 0 0 1
## madde_8 madde_9 madde_10 madde_11 madde_12 madde_13 madde_14 madde_15
## 1 0 0 0 0 0 0 0 0
## 2 1 1 1 0 1 0 0 0
## 3 0 0 0 0 0 0 0 0
## 4 0 1 0 1 0 1 0 0
## 5 1 0 0 1 1 1 1 0
## 6 0 0 1 0 0 1 1 0
## 7 1 0 0 0 0 0 0 1
## 8 0 0 1 0 1 1 1 1
## 9 1 0 1 0 0 0 1 0
## 10 0 0 1 0 1 0 0 1
## madde_16 madde_17 madde_18 madde_19 madde_20
## 1 0 0 0 1 0
## 2 1 0 1 0 0
## 3 0 0 0 0 1
## 4 0 0 0 0 0
## 5 1 0 1 1 1
## 6 0 1 0 0 0
## 7 0 0 0 0 0
## 8 0 1 0 1 0
## 9 0 1 1 0 1
## 10 1 0 0 0 0
## duzey sube cinsiyet madde_1 madde_2 madde_3 madde_4 madde_5 madde_6 madde_7
## 196 4 B erkek 1 1 1 1 1 1 1
## 197 4 B kiz 1 1 0 1 1 1 1
## 198 4 B kiz 1 1 1 1 0 1 1
## 199 4 B erkek 0 0 1 0 1 1 1
## 200 4 B erkek 1 0 1 1 1 1 1
## madde_8 madde_9 madde_10 madde_11 madde_12 madde_13 madde_14 madde_15
## 196 1 0 0 0 1 0 0 0
## 197 1 0 1 1 1 1 1 1
## 198 1 0 1 1 1 1 1 1
## 199 1 0 1 0 0 1 1 0
## 200 1 0 1 1 1 0 1 0
## madde_16 madde_17 madde_18 madde_19 madde_20
## 196 0 1 1 0 1
## 197 0 1 0 0 1
## 198 0 1 1 1 1
## 199 1 1 0 0 0
## 200 1 1 1 1 1
“alistirma_veri” nesnesinin ilk sütununa “id” adında bir değişken ekleyip değerlerini “id_1”den “id_200”e kadar oluşturunuz.
alistirma_veri<- cbind(id=paste("id", 1:200, sep="_"), alistirma_veri)
Her bir birey için 20 maddeden toplam puan alarak “toplam” değişkenini veri setine temel paket fonksiyonlarını kullanarak sütun olarak ekleyiniz. Bu işlemi çalışma alanında “toplam” adlı bir vektör oluşturmadan yapmalısınız.
alistirma_veri$toplam <- rowSums(alistirma_veri[,5:24])
Her bir birey için 20 maddeden toplam puan alarak “toplam2” değişkenini veri setine “dplyr” paket fonksiyonlarını kullanarak sütun olarak ekleyiniz.
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
alistirma_veri <- alistirma_veri %>% mutate(toplam2 = rowSums(select(.,starts_with("madde"))))
“toplam” değişkenini vektör olarak kullanmayı sağlayacak komutu yazınız. “toplam” vektörünün betimsel istatistiklerini hesaplayınız.
attach(alistirma_veri)
summary(toplam)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 6.00 9.00 9.48 13.00 20.00
Her bir düzeyi için toplam puanın ortalamasını tek bir komut ile hesaplayınız.
alistirma_veri %>% group_by(duzey) %>% summarise(mean(toplam))
## # A tibble: 4 × 2
## duzey `mean(toplam)`
## <int> <dbl>
## 1 1 8.04
## 2 2 10.9
## 3 3 8.04
## 4 4 10.9
library(data.table)
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
##
## between, first, last
alistirma_veri<-as.data.table(alistirma_veri)
alistirma_veri[, mean(toplam), by=duzey]
## duzey V1
## 1: 1 8.04
## 2: 2 10.92
## 3: 3 8.04
## 4: 4 10.92
Kızlar ve erkekler için toplam puanların ortalamalarını tek bir komut ile hesaplayınız.
alistirma_veri %>% group_by(cinsiyet) %>% summarise(mean(toplam))
## # A tibble: 2 × 2
## cinsiyet `mean(toplam)`
## <chr> <dbl>
## 1 erkek 9.18
## 2 kiz 9.78
A ve B şubelerindeki kız ve erkek öğrencilerin toplam puanlarının ortalamalarını tek bir komut ile hesaplayınız.
alistirma_veri %>% group_by(sube,cinsiyet) %>% summarise(mean(toplam))
## `summarise()` has grouped output by 'sube'. You can override using the `.groups` argument.
## # A tibble: 4 × 3
## # Groups: sube [2]
## sube cinsiyet `mean(toplam)`
## <chr> <chr> <dbl>
## 1 A erkek 8.52
## 2 A kiz 8.64
## 3 B erkek 9.84
## 4 B kiz 10.9
“alistirma_veri” nesnesini toplam puana göre büyükten küçüğe doğru sıralayınız.
arrange(alistirma_veri, -toplam)
## id duzey sube cinsiyet madde_1 madde_2 madde_3 madde_4 madde_5 madde_6
## 1: id_69 2 B kiz 1 1 1 1 1 1
## 2: id_169 4 B kiz 1 1 1 1 1 1
## 3: id_70 2 B kiz 1 1 1 1 1 1
## 4: id_89 2 B kiz 1 1 1 1 1 1
## 5: id_170 4 B kiz 1 1 1 1 1 1
## ---
## 196: id_167 4 B erkek 0 0 0 0 0 1
## 197: id_3 1 A erkek 0 0 0 1 0 0
## 198: id_103 3 A erkek 0 0 0 1 0 0
## 199: id_1 1 A kiz 0 0 0 0 0 0
## 200: id_101 3 A kiz 0 0 0 0 0 0
## madde_7 madde_8 madde_9 madde_10 madde_11 madde_12 madde_13 madde_14
## 1: 1 1 1 1 1 1 1 1
## 2: 1 1 1 1 1 1 1 1
## 3: 1 1 1 1 1 1 1 1
## 4: 1 1 1 1 1 1 1 1
## 5: 1 1 1 1 1 1 1 1
## ---
## 196: 0 0 0 0 0 0 0 0
## 197: 0 0 0 0 0 0 0 0
## 198: 0 0 0 0 0 0 0 0
## 199: 0 0 0 0 0 0 0 0
## 200: 0 0 0 0 0 0 0 0
## madde_15 madde_16 madde_17 madde_18 madde_19 madde_20 toplam toplam2
## 1: 1 1 1 1 1 1 20 20
## 2: 1 1 1 1 1 1 20 20
## 3: 1 0 1 1 1 1 19 19
## 4: 1 0 1 1 1 1 19 19
## 5: 1 0 1 1 1 1 19 19
## ---
## 196: 1 0 0 0 1 0 3 3
## 197: 0 0 0 0 0 1 2 2
## 198: 0 0 0 0 0 1 2 2
## 199: 0 0 0 0 1 0 1 1
## 200: 0 0 0 0 1 0 1 1
Sıraladığınız veri setini “sinav_order” nesnesine atayınız.
sinav_order<-arrange(alistirma_veri, -toplam)
Öğrencileri toplam puana göre 0 ile 6 arası alt grup, 7 ile 12 arası orta grup, 13 ile 20 arası ise üst grup olacak şekilde gruplandırınız. Gruplama değişkeninize “grıp” adını verip “sinav_order” nesnesine yeni bir sütun olarak ekleyiniz.
grup <- factor(cut(sinav_order$toplam, breaks = c(0, 6.9 , 12.9, 20),
include.lowest=TRUE, right = FALSE),
labels = c("alt grup","orta grup","ust grup"))
sinav_order<- cbind(sinav_order, grup)
#veya
setDT(sinav_order)[ , grup := cut(toplam,
breaks = c(0, 6.9 , 12.9, 20),
labels = c("alt grup","orta grup","ust grup"))]
Alt, orta ve ust grupta kaç öğrencinin yer aldığını tek bir komut ile hesaplayınız.
table(sinav_order$grup)
##
## alt grup orta grup ust grup
## 60 86 54
Düzey 1’de ve A şubesinde yer alan öğrencilerden “sinav_1A” adlı veri setini oluşturup aynı adlı dosyaya yazdırınız.
sinav_1A <- sinav_order %>% filter(duzey==1 & sube=="A")
“alistirma_veri” nesnesinde yer alan 20 maddenin ## Soru #2a Tüm grup üzerinden madde güçlük indeksini (pj) tek bir satırda hesaplayınız.
alistirma_veri[,lapply(.SD,mean),.SDcols = 5:24]
## madde_1 madde_2 madde_3 madde_4 madde_5 madde_6 madde_7 madde_8 madde_9
## 1: 0.47 0.53 0.55 0.36 0.37 0.82 0.71 0.57 0.3
## madde_10 madde_11 madde_12 madde_13 madde_14 madde_15 madde_16 madde_17
## 1: 0.52 0.4 0.58 0.62 0.52 0.38 0.32 0.41
## madde_18 madde_19 madde_20
## 1: 0.32 0.33 0.4
Kız ve erkek öğrenciler için madde güçlük indeksini (pj) tek bir satırda hesaplayınız.
alistirma_veri[,lapply(.SD,mean),by=cinsiyet,.SDcols = 5:24]
## cinsiyet madde_1 madde_2 madde_3 madde_4 madde_5 madde_6 madde_7 madde_8
## 1: kiz 0.52 0.46 0.58 0.36 0.34 0.82 0.72 0.66
## 2: erkek 0.42 0.60 0.52 0.36 0.40 0.82 0.70 0.48
## madde_9 madde_10 madde_11 madde_12 madde_13 madde_14 madde_15 madde_16
## 1: 0.28 0.46 0.48 0.62 0.56 0.48 0.46 0.38
## 2: 0.32 0.58 0.32 0.54 0.68 0.56 0.30 0.26
## madde_17 madde_18 madde_19 madde_20
## 1: 0.52 0.34 0.34 0.4
## 2: 0.30 0.30 0.32 0.4
NOT: Madde güçlüğü, bir maddenin doğru yanıtlama oranı yada düzeyidir. Maddenin doğru yanıtlanma olasılığı olarak da görülebilir. Aşağıdaki formül ile hesaplanabilir.
Madde Güçlük İndeksi(pj)
pj\(=\frac{N_{D}}{N}\)
ND: Maddeyi doğru yanıtlayan öğrencilerin sayısı
N: Toplam öğrenci sayısı