Bu haftaki dersimizde matrisler, listeler ve Markdown konu başlıkları üzerinde çalıştık.
Matris oluşturmak için matrix()
fonksiyonunu
kullanabiliriz.
m1 <- matrix(1:12, ncol = 3, nrow = 4); m1
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
Matrisin transpozunu almak için t()
fonksiyonunu
kullanabiliriz.
t(m1)
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
Bir matrisi bir sayıyla veya bir vektörle çarpabiliriz.
2 * m1
## [,1] [,2] [,3]
## [1,] 2 10 18
## [2,] 4 12 20
## [3,] 6 14 22
## [4,] 8 16 24
c(1,2,3) * m1
## [,1] [,2] [,3]
## [1,] 1 10 27
## [2,] 4 18 10
## [3,] 9 7 22
## [4,] 4 16 36
data.frame()
fonksiyonu ile aynı uzunluktaki
vektörlerden bir veri seti oluşturulabiliriz.
ad <- c("Ali","Elif","Su","Deniz","Aras", "Berk","Can","Ece","Efe","Arda")
boy <- c(160,165,170,155,167,162, 169,158,160,164)
kilo <- c(55,55,57,50,48,65, 58,62,45,47)
beden <- c("S","M","S","M","S", "L","M","L","S","S")
beden <- factor(beden)
(df <- data.frame(ad,boy, kilo, beden))
## ad boy kilo beden
## 1 Ali 160 55 S
## 2 Elif 165 55 M
## 3 Su 170 57 S
## 4 Deniz 155 50 M
## 5 Aras 167 48 S
## 6 Berk 162 65 L
## 7 Can 169 58 M
## 8 Ece 158 62 L
## 9 Efe 160 45 S
## 10 Arda 164 47 S
df
veri setindeki 1.satırın seçilmesi için ;
df[1,]
## ad boy kilo beden
## 1 Ali 160 55 S
df
veri setindeki 1.sütunun seçilmesi için ;
df[,1]
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
kodları kullanılabilir.
Veri seçim işlemi için subset()
fonksiyonu da
kullanılabilir.
subset(df, boy >165)
## ad boy kilo beden
## 3 Su 170 57 S
## 5 Aras 167 48 S
## 7 Can 169 58 M
Veri setine yeni sütun eklemeyi $ sembolüyle yapılabiliriz.
df2 <- data.frame(
S1 = sample(0:100,20),
S2 = runif(n=20 ,min= 50 , max=70)
)
head(df2)
## S1 S2
## 1 68 66.23412
## 2 60 53.39157
## 3 76 64.30083
## 4 33 58.64730
## 5 57 61.61151
## 6 39 63.24558
df2$S3 <- sample(60:80,20,replace = TRUE)
head(df2)
## S1 S2 S3
## 1 68 66.23412 61
## 2 60 53.39157 64
## 3 76 64.30083 60
## 4 33 58.64730 75
## 5 57 61.61151 76
## 6 39 63.24558 69
Veri setinden istenilen sütun - sembolüyle yapabiliriz.
head(df2,3)
## S1 S2 S3
## 1 68 66.23412 61
## 2 60 53.39157 64
## 3 76 64.30083 60
df2 <- df2[,-4]
head(df2,3)
## S1 S2 S3
## 1 68 66.23412 61
## 2 60 53.39157 64
## 3 76 64.30083 60
Dersin bu noktasından sonra R Markdown dosyası üzerinde çalışmalar yaptık. R Markdownda içindekiler tablosu, uygun başlıklar, kod parçaları, tablolar, resimler, satır içi R ve bir kaynakça üzerinde çalışmalar yaptık.
Dosyanın en üstünde yer alan bu kısım oluşturalacak belgede istedğimiz ayarlamaları yapabileceğimiz bölümdür. Bu kısımda yazar bilgisi, başlıklandırma, yazı tipi , tablolar gibi içerikle ilgili kısımlarda ayarlamalar yapabiliriz.
Metne eklemek için görüntüler, tablolar ve hesapalamalar oluşturan kod parçaları ekleyebiliriz.
library(datasets)
data(iris)
Şimdi aşağdaki kod yardımıyla setosa ve virginica çiçek türlerinde yaprak uzunluklarını analiz edebiliriz.
# analiz
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
setosa_petal <-filter(iris, Species == "setosa") %>% pull(Petal.Length)
virginica_petal <-filter(iris, Species == "virginica") %>% pull(Petal.Length)
petal_test <-t.test(setosa_petal, virginica_petal)
# rapor edilecek degerleri yorumlama
t <- petal_test$statistic %>% round(2)
df <- petal_test$parameter %>% round(1)
p <- petal_test$p.value %>% round(3)
# p-değerleri < .001 ata
p_symbol <- ifelse(p < .001, "<", "=") ## kodun bu kısmı elde edilen p değeri .001'den küçük ise p_symbol değerine <, değil ise = atar.
if (p < .001) p <- .001
# sonucları birleştirme
petal_result <- glue::glue("t = {t}, df = {df}, p {p_symbol} {p}")
Çalışmalarımızın yöntem bölümüne tablo eklemek istedğimizdE aşağıdaki kodu kullanabiliriz.
ozet_tablo <- iris %>%
group_by(Species) %>%
summarise(
n = n(),
ortalama = mean(Petal.Length),
sd = sd(Petal.Length)
)
ozet_tablo
## # A tibble: 3 × 4
## Species n ortalama sd
## <fct> <int> <dbl> <dbl>
## 1 setosa 50 1.46 0.174
## 2 versicolor 50 4.26 0.470
## 3 virginica 50 5.55 0.552
Bu tabloyu daha okunaklı hale getirmek için
knitr::kable()
işlevini kullanabiliriz.
yeni_ad <- c("cicek turu", "frekans", "ortalama", "Sd")
knitr::kable(ozet_tablo,
digits = 2,
col.names = yeni_ad,
caption = "Petal Uzulukları için Özet Tablo")
cicek turu | frekans | ortalama | Sd |
---|---|---|---|
setosa | 50 | 1.46 | 0.17 |
versicolor | 50 | 4.26 | 0.47 |
virginica | 50 | 5.55 | 0.55 |