Bölüm6 Import Export İşlemleri

Etkin bir R oturumunun her zaman kendisiyle ilişkilendirilmiş bir çalışma dizini vardır. Veri dosyalarını kaydederken veya içe aktarırken açık bir şekilde bir dosya yolu belirtmediğiniz sürece, R varsayılan olarak bu çalışma dizinini kullanır. Çalışma dizininin konumunu kontrol etmek için getwd() fonksiyonu kullanılabilir.

getwd()
## [1] "/Users/busenursarica/Documents/GitHub/rstudio"


Dosya yolları her zaman çift tırnak işareti içine alınır. setwd() fonsiyonunu kullanarak varsayılan çalışma dizinini aşağıdaki gibi değiştirebilirsiniz:

setwd("/Users/busenursarica/Documents")


Çalışma dizininde yer alan dosyalar list.files() fonksiyonu ile listelenebilir.

list.files()
##  [1] "_book"                           "_bookdown_files"                
##  [3] "_bookdown.yml"                   "_output.yml"                    
##  [5] "01-Motivasyon.Rmd"               "02-Genel-Bakış.Rmd"             
##  [7] "03-Yükleme-ve-Tanışma.Rmd"       "04-Temel-Nesneler.Rmd"          
##  [9] "05-Import-Export-İşlemleri.Rmd"  "06-Bazı-Önemli-Fonksiyonlar.Rmd"
## [11] "07-DPLYR.Rmd"                    "08-Grafikler.Rmd"               
## [13] "09-Kontrol-Yapıları.Rmd"         "10-Fonksiyonlar.Rmd"            
## [15] "11-Uygulamalar.Rmd"              "12-Referans.Rmd"                
## [17] "annual.en.numbers"               "book.bib"                       
## [19] "comp3_files"                     "comp3.bbl"                      
## [21] "comp3.blg"                       "comp3.log"                      
## [23] "comp3.pdf"                       "comp3.Rmd"                      
## [25] "comp3.Rproj"                     "comp3.synctex.gz"               
## [27] "comp3.tex"                       "comp3.toc"                      
## [29] "dn.csv"                          "images"                         
## [31] "index.Rmd"                       "LICENSE"                        
## [33] "packages.bib"                    "preamble.log"                   
## [35] "preamble.tex"                    "README.md"                      
## [37] "style.css"                       "taiex.xlsx"

6.1 Import İşlemleri

Bilgisayarınızda bulunan veri setlerini de R’a çekerek kullanabilirsiniz. read.table(), read.csv(), read_excel() gibi komutlar bu bakımdan işinizi görecektir. Bu noktada çektiğiniz verinin yapısı önem arz etmektedir. Konu ile ilgili farklı yapıda örnekler aşağıda yer almaktadır.


Kullanacağınız veri dosya uzantısı .csv ise read.csv() fonksiyonunu veriyi R’a taşımak için kullanabilirsiniz.

# d<-read.csv("/Users/busenursarica/Desktop/annual.en.csv")
# head(d)

CSV uzantısı ne anlama gelir?

Virgülle ayrılmış değerler (CSV) dosyası, bir veri listesi içeren düz bir metin dosyasıdır. Bu dosyalar genellikle farklı uygulamalar arasında veri alışverişi yapmak için kullanılır. Örneğin, veritabanları ve iletişim yöneticileri genellikle CSV dosyalarını destekler.

Bu dosyalar bazen karakterle ayrılmış seğerler veya virgülle ayrılmış dosyalar olarak adlandırılabilir. Verileri ayırmak (veya sınırlandırmak) için çoğunlukla virgül karakterini kullanırlar, ancak bazen noktalı virgül gibi diğer karakterleri kullanırlar. Buradaki fikir, karmaşık verileri bir uygulamadan bir CSV dosyasına aktarabilmeniz ve ardından bu CSV dosyasındaki verileri başka bir uygulamaya aktarabilmenizdir.

Bu yapıdaki veriler insan tarafından okunabilir ve not defteri gibi bir metin düzenleyici veya microsoft excel ile kolayca görüntülenebilir.


library(readxl)
taiex <- read_excel("taiex.xlsx")
head(taiex)
## # A tibble: 6 x 6
##   `1999` `2000` `2001` `2002` `2003` `2004`
##    <dbl>  <dbl>  <dbl>  <dbl>  <dbl>  <dbl>
## 1  6152.  8757.  4935.  5600.  4525.  6042.
## 2  6200.  8850.  4895.  5526.  4626.  6125.
## 3  6404.  8922.  5136.  5639.  4690.  6144.
## 4  6422.  8845.  5296.  5835.  4701.  6141.
## 5  6407.  9103.  5189.  5810.  4837.  6169.
## 6  6364.  8927.  5376.  5866.  4814.  6227.


Web sitesinde yer alan bir veri setini de R’a çekerek kullanabilirsiniz.

w.url <- "http://courses.washington.edu/b517/Datasets/string.txt"
dw <- read.table(w.url, header = T)
head(dw)
##    x       y
## 1 10 34.7081
## 2 12 34.5034
## 3 14 36.5656
## 4 16 38.3125
## 5 18 42.5441
## 6 20 43.7210


Veri çekmenin bir diğer yolu da environment paneli içerisindeki import dataset yapısının kullanılmasıdır. Bu yapı sayesinde de farklı uzantıdaki veri setleri R’a çekilebilir.


Mevcut veri setinizi R’a çekmek yerine R’da yer alan veri setlerini de kullanabilirsiniz.

head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1


Kütüphanede yer alan farklı veri setlerini de çağırarak kullanabilirsiniz.

#install.package("tseries")
library(tseries)
data(ice.river)
head(ice.river)
##      flow.vat flow.jok prec temp
## [1,]     16.1     30.2  8.1  0.9
## [2,]     19.2     29.0  4.4  1.6
## [3,]     14.5     28.4  7.0  0.1
## [4,]     11.0     27.8  0.0  0.6
## [5,]     13.6     27.8  0.0  2.0
## [6,]     12.5     27.8  0.0  0.8

6.2 Export İşlemleri

R’da elde edilen yapıların kaydedilmesi için kullanılan fonksiyonlardan biri write.table()’dır. Veri okuma kısmında read.table()’ın farklı versiyonları bulunduğu gibi write komutu için de write.csv() gibi farklı uzantılar için özelleştirilmiş fonksiyonlar bulunmaktadır.

dn<-data.frame(a=c(10,34,12),b=c("deneme","bir","iki"),c=pi)
write.table(dn, file = "dn.csv", sep = ",",col.names = NA)

Not: file kısmına yalnızca dosya adı yazılırsa, dosya çalışma dizinine kaydolacaktır.