Soru 1: R'da dataları nasıl aggregate edersin?
Cevap 1:Bu soru için örnek bir senaryo üzerinden gidelip. R'ın içinde bulunan bir dataset'i load ederek bu datasetin içindeki dimension'lara göre measure'ları aggregate edelim.
Öncelikle bu senaryoda kullanacağımız dataset'i tanıyalım
Datanın Adı :ChickWeight
Satır sayısı :578
Dimension Sayısı :4
Dimesion Adları:
Weigth:Tavukların ağırlığı
Time:Tavukların doğumundan beri ağırlık ölçümünün yapılma aralığı
Chick:Tavukların uniqe ID'si
Diet:Tavukların beslenme seviyesi
Datayı load edelim R ortamına
data<-ChickWeight
Şimdi head() fonskiyonu ile datasetimiz ilk altı satırını getirerek datanın nasıl olduğunu görelim
head(data)
weight Time Chick Diet
1 42 0 1 1
2 51 2 1 1
3 59 4 1 1
4 64 6 1 1
5 76 8 1 1
6 93 10 1 1
Şimdi time'a göre aggregate edeceğimizden time'ı uniqe olarak görelim
unique(data$Time)
0 2 4 6 8 10 12 14 16 18 20 21
Datamızı da gördükten sonra aggregate() fonksiyonu ile
a-zaman'a göre tavukların ortalama ağırlıklarını görelim
aggregate(data$weight, list(time=data$Time),mean)
Yukardaki fonksiyonun çıktısı aşağıdaki gibidir.
time x
1 0 41.06000
2 2 49.22000
3 4 59.95918
4 6 74.30612
5 8 91.24490
6 10 107.83673
7 12 129.24490
8 14 143.81250
9 16 168.08511
10 18 190.19149
11 20 209.71739
12 21 218.68889
b-Diet'e göre tavuklarının ağırlıklarının toplamını görelim
unique(data$Diet)
1,2,3,4
aggregate(data$weight, list(diet=data$Diet),sum)
diet x
1 1 22582
2 2 14714
3 3 17154
4 4 15961
Soru 2:R'da 2 data frame'i nasıl merge edebilirsin?
Dataframe=Veri tablolarının depolanması için kullanılır. Eşit uzunluktaki vektörler listesidir.Cevap 2:R da dataframe'ler 2 şekilde merge edilebilir 1. rbind() fonksiyonu 2. cbind() fonksiyonuyla merge edilir.
a-cbind() fonksiyonu kullanılarak merge etmek
cbind() fonksiyonu aslında dataframe'leri yan yana yazdırmaktır.
Örnek
n = c(2, 3, 5) //1. dataframe'in 1.kolondaki veriler
s = c("aa", "bb", "cc") //1. dataframe'in 2. kolondaki veriler
b = c(TRUE, FALSE, TRUE) //1. dataframe 3. kolondaki veriler
df1 = data.frame(n, s, b) //3 kolondan 1. data frame'i oluşturma
1. dataframe(df1)'in çıktısı aşağıdai gibidir.
n s b
1 2 aa TRUE
2 3 bb FALSE
3 5 cc TRUE
n1 = c(1, 2, 4) //2. dataframe'in 1.kolondaki veriler
s1 = c("ee", "ff", "gg") //2. dataframe'in 2. kolondaki veriler
b1 = c(TRUE, FALSE, TRUE) //2. dataframe'in 2. kolondaki veriler
df2 = data.frame(n1, s1, b1) //3 kolondan 2. data frame'i oluşturma
2. dataframe(df2)'in çıktısı aşağıdai gibidir.
n s b
1 1 ee TRUE
2 2 ff FALSE
3 4 gg TRUE
df3<-cbind(df1,df2)
2 dataframe'in merge edilmesiden sonra ortaya çıkan dataframe'in(df3)'in çıktısı aşağıdai gibidir.
n s b n1 s1 b1
1 2 aa TRUE 1 ee TRUE
2 3 bb FALSE 2 ff FALSE
3 5 cc TRUE 4 gg TRUE
b-rbind() fonksiyonu kullanarak merge etme
rbind() fonksiyonu aslında sql'deki union'a eşittir. Kolon isimleri aynı olan 2 dataframe'i unionlar.
Örnek
n = c(2, 3, 5) //1. dataframe'in 1.kolondaki veriler
s = c("aa", "bb", "cc") //1. dataframe'in 2. kolondaki veriler
b = c(TRUE, FALSE, TRUE) //1. dataframe 3. kolondaki veriler
df1 = data.frame(n, s, b) //3 kolondan 1. data frame'i oluşturma
n = c(1, 2, 4) //2. dataframe'in 1.kolondaki veriler
s = c("ee", "ff", "gg") //2. dataframe'in 2. kolondaki veriler
b = c(TRUE, FALSE, TRUE) //2. dataframe'in 2. kolondaki veriler
df2 = data.frame(n, s, b) //3 kolondan 2. data frame'i oluşturma
df3<-rbind(df1,df2)
2 dataframe'in rbind() fonksiyonu ile merge edilmesiden sonra ortaya çıkan dataframe'in(df3)'in çıktısı aşağıdai gibidir.
n s b
1 2 aa TRUE
2 3 bb FALSE
3 5 cc TRUE
4 1 ee TRUE
5 2 ff FALSE
6 4 gg TRUE
Soru 3:R'da nasıl data import edilir.
Cevap 3 :Data'yı R ortamına import etmenin 1.yolu RStudio yada R commander GUI'lerinden birini kullanılarak import etmek 2. si ise R data'ya import etme fonksiyonlarını kulanmakAşağıdaki ilk örnek R studio kullanılarak datayı import etmenin yolu
Şimdi ise r fonksiyonların kullanarak dataları import etmek. Öncelikle R daki çalışma dizini, R ortamına import edilecek datanın bulunduğu konum olarak set etmek bunu aşağıdaki şekilde yapabilirsiniz.
getwd() //Şuanki çalışma dizinini gösterir.
setwd("file path") //Çalışma dizini yeni path'e set etmek
Sonra aşağıdaki fonksiyonlar kullanılarak istenilen data R ortamına import edilebilir.
mydata=read.table("mydata.txt") //txt dosyalarını okuyan fonksiyon
mydata=read.csv("mydata.csv") //csv dosyalarını okuyan fonksiyon
mydata=read.csv("mydata.xls") //xls dosyalarını okuyan fonksiyon
Soru 4:Matrix ve dataframea arasındaki fark nedir.
Cevap 4:Dataframe içinde farklı data tiplerini bulundurabilir yani bir dataframe de hem integer hemde character bulunabilir ama Bir matrix aynı data tiplerini içinde bulundurabilir.farklı data tiplerini bulundurmaz.Soru 5:Bir string'i 2 farklı stringi nasıl ayırabilirsin?
Cevap 5:Örnek string'imiz "sukru.erguntop" bu string "." dan önce ve sonrasını ayıralımstrsplit("sukru.erguntop",split=".") //strsplit ile ayrılabilir.
Soru 6:Bir verinin tipini nasıl öğrenebilirsin?
Cevap 6: class() fonksiyonu ile öğrenebilirsiniz. örnek olarakx<-1
class(x) //x in numeric olduğunu döner
x<-"sukru"
class(x) //x in character olduğunu döner
Soru 7:attach() ve detach() fonksiyonları ne işe yarar ve aradaki fark nedir.
Ceap 7:Örnek olarak, "Expression", "Gender" ve "Subtype" olmak üzere 3 kolona sahip olan datayı R ortamına import edelim
x<-read.csv('anova.csv',header='T')
bu data'daki kolonların datasını aşağıdaki şekilde çağırabilir.
x$Gender
[1] m m m m m f m m f m m f m m m m f m m m m m m f m m m f m m m m f m m m m [38] m m m m m m m m m f m f m m m m m f m m f m m f m m m m f m m m m m m m m [75] m m f m m m m m f m m m m m m m m m f m m f m m f m f m m f m m f m m f m [112] m f m m f m m m f m m m f m f m f f f f f f m f m f f f m f f f f m f m f [149] m f f m f f f f f m f m f f m f f m f f m f f f m f f f m f f f m f f m f [186] f f m f f m f m m f m f m f f m f f f f f m f f m f f f m m m f m m m f f [223] f f f f f m m m f m f f m f f f m f f f m f f f f m f m f f f f m f f f m [260] f f m f f f f f f m f f m f f f f f f m f f Levels: f m
ama eğer attach fonksiyonu kullanılsaydı attach(x) diye gender kolonunu aşağıdaki şekilde çaırabilirdik
->Gender
[1] m m m m m f m m f m m f m m m m f m m m m m m f m m m f m m m m f m m m m [38] m m m m m m m m m f m f m m m m m f m m f m m f m m m m f m m m m m m m m [75] m m f m m m m m f m m m m m m m m m f m m f m m f m f m m f m m f m m f m [112] m f m m f m m m f m m m f m f m f f f f f f m f m f f f m f f f f m f m f [149] m f f m f f f f f m f m f f m f f m f f m f f f m f f f m f f f m f f m f [186] f f m f f m f m m f m f m f f m f f f f f m f f m f f f m m m f m m m f f [223] f f f f f m m m f m f f m f f f m f f f m f f f f m f m f f f f m f f f m [260] f f m f f f f f f m f f m f f f f f f m f f Levels: f m
Eğer attach etmeden yukardaki şekilde çağırsaydık aşağıdaki hatayı alıyor olurduk.
Error: object 'Gender' not found
Datayı tekrar x$Gender şeklinde çağırmak için detach(x) fonksiyonu kullanmak gerekir.
Soru 8:R'da veri tipi dönüşümlerini açıklayın.
Cevap 8: Data'nın tipini doğrulamak için is.foo, data tipini değiştirmek için ise as.foo kullanılır.
Örnek
x<-1
is.numeric(x) //Bu fonsiyon x'in numeric olup olmadığını soruyor. X numeric olduğundan True değeri döner.
Diğer örnek ise x'i numeric'ten character'e dönüştürme
as.character(x) //X'i character'e döndürdü.
Soru 9: Birden fazla string'i nasıl birleştirebilirsin?
Cevap 9: paste() fonksiyonu ile birleştirilebilir. Aşağıdaki örnekte gösterilmektedir.
paste("Data","Science","in","R","Programming",sep="_")
Çıktısı aşağıdaki gibidir.
"Data_Science_in_R_Programming"
Soru 10:R da web application yapmak için kullanılan paket hangisidir.
Cevap 10: Shiny paketidir. İçinde bulundurduğu fonksiyonlar ile interactive bir web application yapılabilir.
örnek bir shiny uygulaması
Soru 11: R'da istatistiksel analizler ve grafikler oluşturmak için kullanılan veri yapıları nelerdir.
Cevap 11:
a-Vectors:R'daki temel veri tipidir. Atomic vektör ve list olmak üzere 2'ye ayrılmaktadır. Atomik vektör ve list arasındaki fark; Atomik vektörde tüm veri tipleri aynı olmalıdır ve genellikle c() fonksiyonu ile oluşturulur. Örnek olarak aşağıda gösterilemektedir.
x<-c(1,2,3)
List'te ise aynı olmak zorunda değildir ve genellikle list() fonksiyonu ile oluşturulmaktadır.
x<-list(1,2,3)
b-Matrix:Örnek bir matrix kullanımı aşağıda gösterilmektedir.
a<-matrix(1:6,ncol=3, nrow=2)
Çıktısı aşağıdaki gibidir.
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
c-Array:Örnek bir array kullanımı aşağıda gösterilmektedir.
b <- array(1:12, c(2, 3, 2))
Çıktısı aşağıdaki gibidir.
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
d-Dataframe:Daha önceki bölümde değinildiği için bu bölümde anlatılmayacak
Soru 12: R'da harici dosya(external file) olmadan bir tablo nasıl create edilebilir.
myTable = data.frame() // myTable adında bir dataframe oluşturulmalı
edit(myTable) //Oluşturulan dataframe edit() fonksiyonu ile istenildiği şekilde bir tablo oluşturulabilir.
Soru 13:R'da kaç tane sıralama algoritması var?
Cevap 13:Aşağıda görüldüğü üzere 5 tane sıralama algoritması var
-Buble Sort
-Selection Sort
-Merge Sort
-Quic Sort
-Bucket Sort
Soru 14:R'da data'yı nasıl sıralarsın?
Cevap 14:Aşağıdaki örnekte R üzerinde bulunan "mtcars" verisi kullanılarak gösterilmektedir.
attach(mtcars)
mtcars[order(mpg),]
0 yorum:
Yorum Gönder