Bu çeviri serisinde R konusunda bilgi sahibi olmak isteyen giriş düzeyindeki
kullanıcıları hedef alıyorum. Yapılan çevirinin http://www.ats.ucla.edu/stat/r/notes/
adresinden ingilizcesine de ulaşabilirsiniz.
Öncelikle bilgisayarımızda istediğimiz bir yerde mydata adında bir dizin yaratalım.
Ve yarattığımız dizinin not alalım. Bu bir Windows’ta “C:/mydata” Mac veya Unix’te
“~/mydata” şeklinde bir dizin olabilir.
Ardından mydata dizinine hs0.csv, hs0_1.csv, schdat_fix.txt, hsb2.dta
ve hsb2.sav dosyalarını kaydedelim.
Artık başlamaya hazırız.
1.0 Bu bölümde kullanılan R Fonksiyonları
| read.table | text dosyalarını okur |
| read.fwf | sabit formatlı (fixed format) text dosyalarını okur |
| read.dta | Stata (.dta) veri dosyalarını okur |
| read.spss | SPSS (.sav) veri dosyalarını okur |
| save | verileri R veri dosyası olarak kaydeder |
| load | R veri dosyasından veri okur |
| names | Veri tablosundaki değişken isimlerini listeler yada değiştirir. |
setwd() fonksiyonu windows’taki cd komutuna benzer şekilde çalışma dizinini belirler.
getwd() fonksiyonu ise mevcut çalışma dizinin gösterir.
C:/mydata Dizinine geçmek için aşağıdaki komutları kullanmanız gerekir.
setwd(”C:/mydata”) # çalışma dizininizi mydata dizini olarak değiştirir getwd() # bu komutla çalışma dizininizi kontrol edebilirsiniz “C:/mydata”
En yaygın kullanılan ASCII veri formatlarından biri de virgülle ayrılmış değer
(comma-separated-values -csv) dosyalarıdır. Bu tip dosyalar Openoffice Excel gibi
çeşitli veritabanı programları ile oluşturulabilirler. Şimdi read.table fonksiyonunu
kullanarak mydata dizinimizdeki hs0.cvs dosyasını yükleyelim. Aşağıda ilk beş
satırı olan hs0.cvs dosyasında dikkat ederseniz ilk satırını değişken isimleri
oluşturmaktadır.
gender,id,race,ses,schtyp,prgtype,read,write,math,science,socst 0,70,4,1,1,general,57,52,41,47,57 1,121,4,2,1,vocati,68,59,53,63,61 0,86,4,3,1,general,44,33,54,58,31 0,141,4,3,1,vocati,63,44,47,53,56
Veriyi çeşitli şekillerde yükleyip görüntüleyebilirsizi.
data1 <- read.table(”hs0.csv”, header=T, sep=”,”) attach(data1) names(data1) [1] “gender” “id” “race” “ses” “schtyp” “prgtype” “read” [8] “write” “math” “science” “socst” data1[1:5, ] gender id race ses schtyp prgtype read write math science socst 1 0 70 4 1 1 general 57 52 41 47 57 2 1 121 4 2 1 vocati 68 59 53 63 61 3 0 86 4 3 1 general 44 33 54 58 31 4 0 141 4 3 1 vocati 63 44 47 53 56 5 0 172 4 2 1 academic 47 52 57 53 61 table(prgtype) prgtype academic general vocati 105 45 50
save() ve load() fonksiyonları R veri dosyalarından veri yükleyip
kaydetmeye yaramaktadır.
save(data1,file=”data1.rda”) # komutu data1 tablosunu bir R objesi (R object) olarak kaydeder detach(data1) rm(list=ls()) # komutu hafızadaki herşeyi temizler table(prgtype) # komutuyla veri olup olmadığını kontrol edersek Error in table(prgtype) : Object “prgtype” not found # hafızayı temizlediğimizden hata mesajı alırız load(”data1.rda”) # Şimdi R verisini hafızaya yükleyelim attach(data1) # data1 adını verdiğimiz dataframe’e bağlayalım data1[1:5, ] table(prgtype) prgtype academic general vocati 105 45 50 detach(data1) # işimiz bitince data1′i detach ile ayıralım rm(list=ls()) # şimdi hafızadaki herşeyi temizleyebiliriz.
İzleyen veri kümesi hs0_1.csv veri dosyasının başlangıç bölümünü oluşturmakatadır.
Bu veri dosyası dikkat ederseniz ilk satırda değişken isimlerini içermemektedir.
Bunun yanı sıra kalın italik ile gösterilen satırda ard arda gelen
iki virgül olduğu görülür. Bu durum o alanda verinin olmadığı anlamına gelir.
0,70,4,1,1,"general",57,52,41,47,57 1,121,4,2,1,"vocati",68,59,53,63,61 0,86,4,3,1,"general",44,33,54,58,31 0,141,4,3,1,"vocati",63,44,47,53,56 0,172,4,2,1,"academic",47,52,57,53,61 0,113,4,2,1,"academic",44,52,51,63,61 0,50,3,2,1,"general",50,59,42,53,61 0,11,1,2,1,"academic",34,46,45,39,36 0,84,4,2,1,”general”,63,57,54,,51 0,48,3,2,1,”academic”,57,55,52,50,51 0,75,4,2,1,”vocati”,60,46,51,53,61 0,60,5,2,1,”academic”,57,65,51,63,61 0,95,4,3,1,”academic”,73,60,71,61,71
read.table()fonksiyonu hs0_1.csv dosyasındaki verileri temp adı verilen
geçici bir data frame’e yükleyecektir. Bundan sonra örneğin istediğimiz
5 gözlemi görüntüleyerek veri girdilerinin doğru olup olmadığını kontrol edebiliriz.
temp <- read.table(’hs0_1.csv’, sep=”,”) # hs0_1.csv okunuyor (sütun adları yok) names(temp) <- c(”gender”,”id”,”race”,”ses”,”schtyp”,”prgtype”, “read”,”write”,”math”,”science”,”socst”) # Sütun adlarını ekleyelim temp[5:10, ] # şimdi 5′ten 10′a kadar gözlemleri listeleyerek verileri kontrol edelim gender id race ses schtyp prgtype read write math science socst 5 0 172 4 2 1 academic 47 52 57 53 61 6 0 113 4 2 1 academic 44 52 51 63 61 7 0 50 3 2 1 general 50 59 42 53 61 8 0 11 1 2 1 academic 34 46 45 39 36 9 0 84 4 2 1 general 63 57 54 NA 51 10 0 48 3 2 1 academic 57 55 52 50 51
read.table() fonksiyonu aynı zamanda internet üzerinden veri okumak
için de kullanılabilir.
hsb2<-read.table(”http://www.ekonomist.gen.tr/belgeler/File/R/hsb2.csv”, sep=’,', header=T) hsb2[1:5,] id female race ses schtyp prog read write math science socst 1 70 male white low public general 57 52 41 47 57 2 121 female white middle public vocation 68 59 53 63 61 3 86 male white high public general 44 33 54 58 31 4 141 male white high public vocation 63 44 47 53 56 5 172 male white middle public academic 47 52 57 53 61
Bir diğer yaygın kullanılan ASCII data formatı fixed format‘tır. Bu formatta veri
her gözlem için sabitlenmiş bir sütunda yer alır. Böyle bir veri kullanımında hangi
sütunun hangi değişkene karşılık geldiğini gösteren bir codebook kullanımı
gerektirir. Aşağıda schdat_fix.txt dosyasından bir codebook kullanılarak getirilen
veri getirilmektedir. Codebook’taki sütunlar hakkındaki bilgiler ayrı bir (sep)
argümanla kullanılır.
schdat_fix.txt veri dosyasının içeriği.
195 094951 26386161941 38780081841 479700 870 56878163690 66487182960 786 069 0 88194193921 98979090781 107868180801
Codebook
| variable name değişken adı |
column number sütun numarası |
| id | 1-2 |
| a1 | 3-4 |
| t1 | 5-6 |
| gender | 7 |
| a2 | 8-9 |
| t2 | 10-11 |
| tgender | 12 |
Bu tablo (codebook) sayesinde yukarıdaki schdat_fix.txt dosyasındaki
verilerin ne anlama geldiğini görebiliriz.
Fixed format data’ları okumak için read.table() fonksiyonun yerine
read.fwf() fonksiyonunu kullanırız. İki fonksiyon arasındaki farklılıklardan
birisi de her bir verinin başladığı yeri belirten sep argümanı yerine
her bir verinin genişliğini belirten width argümanının kullanılmasıdır.
Yani uzun lafın kısası read.table() ile okursak her bir sütunun başlangıç
satırını sep argümanı ile belirtiyoruz. Yok read.fwf() fonksiyonu
kullanacaksak width argümanı ile her verinin kaç haneden oluştuğunu
belirtmemiz gerekiyor. Böylece ilk değişken olan id 2 haneli ise width
argümanının ilk değeri 2 olacaktır. width = c(2, … ) gibi.
fixed <- read.fwf(”schdat_fix.txt”, width = c(2, 2, 2, 1, 2, 2, 1))
# verileri yükleyip her değişkenin genişliğini tanımlayalım
names(fixed) <- c(”id”, “a1″, “t1″, “gender”, “a2″, “t2″, “tgender”)
# değişkenleri adlandıralım
fixed # şimdi verileri kontrol edelim
id a1 t1 gender a2 t2 tgender 1 1 95 NA 0 94 95 1 2 2 63 86 1 61 94 1 3 3 87 80 0 81 84 1 4 4 79 70 0 NA 87 0 5 5 68 78 1 63 69 0 6 6 64 87 1 82 96 0 7 7 86 NA 0 69 NA 0 8 8 81 94 1 93 92 1 9 9 89 79 0 90 78 1 10 10 78 68 1 80 80 1
Bütün bunlardan sonra bazen farklı istatistik paket programları için
(STATA, SPSS gibi) hazırlanmış verileri kullanmak da isteyebiliriz.
Bunun için.
detach() rm(list=ls()) # hafızadaki herşeyi temizleyelim library(foreign) # farklı datasetlerden veri okumak #için gerekli “foreign” kütüphanesini yükleyelim hstata <- read.dta(file=”hsb2.dta”) # stata data dosyasından # okuma yapalım attach(hstata) table(female) female male female 91 109 detach() rm(list=ls()) # tekrar hafızayı temizleyelim hspss <- read.spss(file=”hsb2.sav”) # spss data dosyasından okuma yapalım attach(hspss) table(PROG) PROG vocation academic general 50 105 45
Tekrar Görüşmek Üzere.
Toplam: 2494 ~ Bugün: 0 ~ En Son: 05 02 2012
“R’ın Temelleri 1 : Veri Girişi” için 5 Yorum Var
Yorum yapmadan önce şu hoş yazıyı okumanızı sizlerden rica ediyorum. (YAPICI ELEŞTİRİ ÜZERİNE KÜÇÜK BİR HİKAYE) Üzülerek söylemem gerekiyor ki konu ile ilgili olmayan yorumlar silinecektir.
Eğer bana iletmek istediğiniz bir mesajlarınız ya da görüşünüz varsa ziyaretçi derfterine yazabilirsiniz.
Son olarak iyi bir iletişim için Türkçenin doğru kullanımına lütfen özen gösteriniz.
İyi yorumlar.




28 Mayıs 2007 ~ 18:44
Gerçekten güzel bir çalışma olmuş devamını sabırsızlıkla bekliyorum.
09 Kasım 2009 ~ 12:14
Hocam,
Öncelikle çalışmalarınızda kolaylıklar diliyorum. R programı ile çalışmaya yeni başlayacağım ve kullanımı hakkında yeterli bilgiye sahip değilim. Kısaca aktarmam gerekirse, amacım excel dosyası şeklinde hazırlanmış bir çerçeveden örnek seçmek. Excel dosyasını txt dosyası olarak akradım fakat hangi komutları nasıl kullanacağım konusunda bilgiye sahip değilim. Ulaşabileceğim yolar hakında beni bilgilendirirseniz sevinirim.
30 Kasım 2009 ~ 00:25
Sayın Zeynep OKBAY;
Öncelikle sorunuza kısa sürede cevap veremediğim için kusuruma bakmayın. İşlerimin yoğunluğu nedeni ile web sitem ile bir süredir ilgilenemiyorum.
Konu ile ilgili aşağıdaki linkten ingilizce açıklayıcı bilgilere ulaşabilirsiniz. Bu notların ilk bölümünü Türkçeye çevirmiş ancak devamını getirememiştim.
http://www.ats.ucla.edu/stat/r/notes/
Ayrıca http://www.google.com sitesinde örneğin “regression analysis in R” diye yazılırsa istenen komutun ne olduğu rahatlıkla bulunabilir.
Ayrıca kullanacağınız komutlar yapacağınız analize göre değişecektir. Eğer bir paket programla ekonometrik analiz yapmayı amaçlıyorsanız ve daha kullanışlı bir program arıyorsanız açık kaynak kodlu diğer bir ekonometri yazılımı GRETL’ı size öneririm.
Bkz. http://www.ekonomist.gen.tr/v4/iktisatcinin-alet-cantasi/gretl/
Ayrıca bu program değerli arkadaşım Talha Yalta ( http://www.etu.edu.tr/cv.php?cv=yalta ) tarafından Türkçeye de çevirilmiş kullanışlı bir arayüze sahiptir.
http://gretl.sourceforge.net/gretl_turkish.html
Selamlarımla.
11 Ocak 2011 ~ 15:38
Cengiz Bey emeklerinizden dolayi tesekkur ederiz. Kullanicilarin ilgisini cekebilecegini dusundugum bir haberi paylasmak isterim:
Bu alanda Turkce kaynak sikintisinin farkina vararak yazdigim ‘R yazilimina giris’ baslikli kitabim ODTU Yayinciliktan cikti. Kitap hakkindaki bilgiye asagidaki baglantidan ulasabilirsiniz.
http://www.metu.edu.tr/~oilk/Rgiris.html
Iyi calismalar diliyorum.
31 Mayıs 2011 ~ 08:30
Değerli Özlem Hocam;
Böyle bir eseri bize kazandırdığınız için teşekkür ederim.
Ben de size iyi çalışmalar diliyorum.