8 Veri Okuma ve Yazma

  • Veri girişi istatistiksel analiz sürecinin ilk adımıdır.

  • R'da veri girişi diğer yazılımlarla kıyaslandığında çok kullanışlı değildir.

  • Bu nedenle aktarma/import yolu tercih edilir.

  • Veri aktarımı için çok sayıda fonksiyon ve paket bulunmaktadır.

  • Ayrıca menü ile de aktarma yapılabilir.

  • Bilgisayardan internetten farklı formattaki veriler okunabilir.

  • Veri setleri genellikle Excel, SPSS veya metin dosyaları (.txt, .csv, .dat, vb.) gibi uygun veri biçimlerinde kaydedilir

  • R, çeşitli veri formatlarını içe aktarabilir (yani okuyabilir).

Bir veri setini R'ye aktarmanın iki yolu vardır:

  1. RStudio'da "Veri Kümesini İçe Aktar" menü seçeneğini kullanarak
R studio
R studio
  1. Belirli bir R komutunu kullanarak
  • İçe aktarmak istediğiniz dosyaya göz atın.

  • Veri seti için bir isim verin.

  • İçe aktarılacak sayfayı seçin.

  • Değişken isimleri dosyanın ilk satırındaysa "First Row as Names".

Excel dosylarını içe aktarma
Excel dosylarını içe aktarma

8.0.1 SPSS dosylarını içe aktarma

  • İçe aktarmak istediğiniz dosyaya göz atın.

  • Veri seti için bir isim verin.

SPSS dosylarını içe aktarma
SPSS dosylarını içe aktarma

8.1 Veri Okuma

  • En temel veri okuma/aktarma fonksiyonları

  • Verinin düzgün girilmiş olması okumayı kolaylaştırır.

  • İlk satırda genellikle değişken adlarına (header), ilk sütunda ise kimlik veya sıra numarasına yer verilir.

  • Gözlemlere ve değişkenlere ilişkin veri girilirken karakterler veya sayısal değerler arasında boşluk bırakmaktan kaçınmak gerekmektedir. Değişken adı boşluklu yazılmışsa ne olur?

  • Eksik veri boyunca aynı şekilde girilmelidir.

  • Değişkenlerin birinden nasıl ayrıldığı önemlidir. (, ; :  / )

  • Tercihimiz .csv uzantılı veriler ama büyük veri setleri az yer kalması icin .txt,.prn formatında karşımıza çıkabilmektedir.

  • Temel pakette read.csv ve read.table gibi bazı fonksiyonlar bulunmaktadır.

  • Ayrıca, belirli formatlarını içe aktarmak için R paketleri bulunmaktadır.Örneğin, SPSS dosyaları için foreign ve Excel dosyaları için xlsx gibi

8.2 read.*() fonksiyonları

Argüman Açıklama
header Mantıksal değerler ile verinin ilk satırında değişken isimlerinin olup olmadığını test eder.
sep Sütun ayracıdır.
na.strings Kayıp değerleri belirtmek için kullanılır.
dec Ondalık sayıların ne ile ayrıldığını gösteren argümandır.
nrows Okunmak istenilen satır sayısını belirtmek için kullanılır.
skip Bir dosya okunurken okunmadan atlanmak istenilen satır sayısı için kullanılır.

8.3 Excel dosyası aktarma

# yükle ve aktive et 
install.packages("xlsx")
library("xlsx")

# read.xlsx fonksiyonunun kullanımı
my_excel_file <- read.xlsx("dizin/dosyaadi.xlsx",sheetName = "sheetname")

8.3.1 SPSS dosyası aktarma

# yükle ve aktive et 
install.packages("foreign")
library("foreign")

# read.spss fonksiyonunun kullanımı
my_spss_file <- read.spss("dizin/dosyaadi.sav",
                to.data.frame = TRUE)

8.3.2 text dosyası aktarma

  • text dosyaları okumak için paket yüklemeye gerek yoktur.
# , ile ayrılmış csv dosyaları
csv_dosya <- read.csv("dizin/dosyaadi.csv",header = TRUE)

# tab ile ayrılmış txt dosyaları
txt_dosya <- read.table("dizin/dosyaadi.txt",header = TRUE, sep = "\t")
  • Dikkat

  • header = TRUE

  • sep="\t"

  • sep="," for comma-separated files

8.4 Uygulama

  • 🔗Dosyaları buradan klasör halinde indirebilirsiniz. DOSYALAR

8.4.1 txt uzantılı dosya okuma

no m_1 m_2 m_3 m_4 m_5
522 12 14.0 16 20.0 10
222 5 NA 20 10.0 10
454 5 10.2 6 4.0 10
567 10 20.0 NA 12.2 20

8.4.2 csv uzantılı dosya okuma

no m_1 m_2 m_3 m_4 m_5
522 12 14.0 16 20.0 10
222 5 NA 20 10.0 10
454 5 10.2 6 4.0 10
567 10 20.0 NA 12.2 20
  • dosya okurken yeniden isimlendirme
No M1 M2 M3 M4 M5
001 522 12 14 16 20 10
002 222 5 NA 20 10 10
003 454 5 10,2 6 4 10
004 567 10 20 NA 12,2 20
    • dosya okurken belirli bir sütunu atlama
M1 M2 M3 M4 M5
001 12 14 16 20 10
002 5 NA 20 10 10
003 5 10,2 6 4 10
004 10 20 NA 12,2 20

8.4.3 sütun genişliğine göre okuma

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13
1 689 A 1 0 1 0 1 0 1 0 1 0
2 654 B 1 1 1 1 0 1 0 1 0 1
3 436 A 1 0 1 0 1 1 1 1 1 1
  • Değişkenlere isim verilmiş hali
sira no kitapcik m1 m2 m3 m4 m5 m6 m7 m8 m9 m10
1 689 A 1 0 1 0 1 0 1 0 1 0
2 654 B 1 1 1 1 0 1 0 1 0 1
3 436 A 1 0 1 0 1 1 1 1 1 1

8.4.4 SPSS dosyası okuma

id bolge puan
1 1 9
2 1 8
3 1 6
4 1 8
5 1 10
6 1 4
## tibble [50 × 3] (S3: tbl_df/tbl/data.frame)
##  $ id   : num [1:50] 1 2 3 4 5 6 7 8 9 10 ...
##   ..- attr(*, "format.spss")= chr "F6.2"
##  $ bolge: num [1:50] 1 1 1 1 1 1 1 1 1 1 ...
##   ..- attr(*, "format.spss")= chr "F6.2"
##  $ puan : num [1:50] 9 8 6 8 10 4 6 5 7 7 ...
##   ..- attr(*, "format.spss")= chr "F6.2"

8.4.5 webden dosya okuma

##  [1] -0.354517  0.561655  0.315551  3.347049 -0.122389 -0.251276 -0.517996
##  [8]  1.888854  0.461254  2.237483
  • sütun haline getirme
##  [1] "   -0.354517     0.573051    -0.175230"
##  [2] "    0.561655    -0.368095     1.090042"
##  [3] "    0.315551    -0.577052     0.425472"
##  [4] "    3.347049     1.088520     1.149353"
##  [5] "   -0.122389    -0.694153    -0.766538"
##  [6] "   -0.251276    -0.017487    -1.367410"
##  [7] "   -0.517996    -0.817974    -1.559255"
##  [8] "    1.888854    -0.658335     1.007614"
##  [9] "    0.461254     0.463916    -0.898300"
## [10] "    2.237483     1.533398     0.180512"

8.5 Veri Yazma

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(50,55,57,50,48,65,58,62,45,47)
beden <- c("S","M","S","M","S","L","M","L","S","S")
df <- data.frame(ad, boy, kilo, beden)
df
ad boy kilo beden
Ali 160 50 S
Elif 165 55 M
Su 170 57 S
Deniz 155 50 M
Aras 167 48 S
Berk 162 65 L
Can 169 58 M
Ece 158 62 L
Efe 160 45 S
Arda 164 47 S
write.table(df, file="df.txt")# df dosyasi nerede, gorunumu nasil
write.table(df, file="df.txt",row.names = FALSE,col.names = FALSE)
# karakter nesnler tirnak icinde ne yapmali?
write.table(df, file="df.txt",row.names = FALSE,col.names = FALSE,quote=FALSE)

yeni gözlem eklemek istiyorsaniz append argümanı kullanılabilir.

 ek <- data.frame(ad=c("Ahmet","Ali"), boy=c(180,170), kilo=c(60,70), 
                 beden=c("S","L"))
write.table(ek, "df.txt",row.names=FALSE,
            col.names=FALSE,
            quote=FALSE,append=TRUE)
  • write.csv() fonksiyonu kullanılarak yazılan veri dosyaları "," ile,

  • write.csv2() fonksiyonu kullanılarak yazılan veri dosyaları ise ";" ile ayrılır iki fonksiyonun bir diğer farkı ise ondalık sayı ayıracıdır.

  • write.csv ile yazdırılan dosyaların excelde açılması

8.5.1 cat() fonksiyonu

  • Döngülerde sıklıkla ekrana bilgi yazdırmak amacıyla kullanılır, ancak dosya yazdırmak amacıyla da kullanabilmektedir.
  • fonksiyonlarla yapılan hesaplama çıktısı da yazabilmektedir.
  • Bu nedenle bir R oturumu sırasında not alınmak istenilen bilgileri bir dosyaya yazdırmak için kullanılabilir.
 cat("ogrencilerin boy ortalamasi ", mean(boy), "\n",
      "ogrencilerin kilo ortalamasi", mean(kilo), "\n",
     file="bilgi.txt")
  • ne ise yaradi?

8.6 writeLines fonksiyonu

writeLines("ogrencilerin boy ortalamasi: 163 cm\n",
            "ogrencilerin kilo ortalamasi: 53.7 kg",
            con="bilgi2.txt")

8.7 ODEV

  • 🔗 Linkte yer alan sayfayı inceleyiniz. Bu sayfada bir veri setini incelemeniz ve bu veri seti ile ilgili sorulara cevap vermeniz beklenemketedir.

  • 🔗Linkte yer alan sayfada sizden iki veri setini okumanız beklenmeketdir. Bu iki veri setini okuduktan sonra da hazır kodları incelemeniz ve bu kodlar ile ilgili sorulara cevap vermeniz beklenmektedir.