R - CSV Dosyaları
R'de, R ortamı dışında depolanan dosyalardan verileri okuyabiliriz. Ayrıca, işletim sistemi tarafından saklanacak ve erişilecek dosyalara da veri yazabiliriz. R, csv, excel, xml vb. Gibi çeşitli dosya formatlarını okuyabilir ve yazabilir.
Bu bölümde bir csv dosyasından veri okumayı ve ardından bir csv dosyasına veri yazmayı öğreneceğiz. Dosya, R'nin okuyabilmesi için geçerli çalışma dizininde bulunmalıdır. Elbette kendi dizinimizi de ayarlayabilir ve oradan dosya okuyabiliriz.
Çalışma Dizinini Alma ve Ayarlama
R çalışma alanının hangi dizine işaret ettiğini kontrol edebilirsiniz. getwd()işlevi. Ayrıca yeni bir çalışma dizini de ayarlayabilirsiniz.setwd()işlevi.
# Get and print current working directory.
print(getwd())
# Set current working directory.
setwd("/web/com")
# Get and print current working directory.
print(getwd())
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
[1] "/web/com/1441086124_2016"
[1] "/web/com"
Bu sonuç, işletim sisteminize ve çalıştığınız mevcut dizininize bağlıdır.
CSV Dosyası olarak gir
Csv dosyası, sütunlardaki değerlerin virgülle ayrıldığı bir metin dosyasıdır. Adlı dosyada bulunan aşağıdaki verileri düşüneliminput.csv.
Bu dosyayı, bu verileri kopyalayıp yapıştırarak Windows not defteri kullanarak oluşturabilirsiniz. Dosyayı farklı kaydedininput.csv Not defterinde Tüm dosyalar olarak kaydet (*. *) seçeneğini kullanarak.
id,name,salary,start_date,dept
1,Rick,623.3,2012-01-01,IT
2,Dan,515.2,2013-09-23,Operations
3,Michelle,611,2014-11-15,IT
4,Ryan,729,2014-05-11,HR
5,Gary,843.25,2015-03-27,Finance
6,Nina,578,2013-05-21,IT
7,Simon,632.8,2013-07-30,Operations
8,Guru,722.5,2014-06-17,Finance
CSV Dosyasını Okumak
Aşağıdaki basit bir örnektir read.csv() mevcut çalışma dizininizde bulunan bir CSV dosyasını okuma işlevi -
data <- read.csv("input.csv")
print(data)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
id, name, salary, start_date, dept
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
6 6 Nina 578.00 2013-05-21 IT
7 7 Simon 632.80 2013-07-30 Operations
8 8 Guru 722.50 2014-06-17 Finance
CSV Dosyasını Analiz Etme
Varsayılan olarak read.csv()işlevi, çıktıyı bir veri çerçevesi olarak verir. Bu, aşağıdaki şekilde kolayca kontrol edilebilir. Ayrıca sütun ve satır sayısını da kontrol edebiliriz.
data <- read.csv("input.csv")
print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
[1] TRUE
[1] 5
[1] 8
Bir veri çerçevesindeki verileri okuduktan sonra, sonraki bölümde açıklandığı gibi veri çerçevelerine uygulanabilir tüm işlevleri uygulayabiliriz.
Maksimum maaşı alın
# Create a data frame.
data <- read.csv("input.csv")
# Get the max salary from data frame.
sal <- max(data$salary)
print(sal)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
[1] 843.25
Maksimum maaşı olan kişinin detaylarını öğrenin
SQL where cümlesine benzer belirli filtre kriterlerini karşılayan satırları getirebiliriz.
# Create a data frame.
data <- read.csv("input.csv")
# Get the max salary from data frame.
sal <- max(data$salary)
# Get the person detail having max salary.
retval <- subset(data, salary == max(salary))
print(retval)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
id name salary start_date dept
5 NA Gary 843.25 2015-03-27 Finance
BT departmanında çalışan tüm insanları alın
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset( data, dept == "IT")
print(retval)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
6 6 Nina 578.0 2013-05-21 IT
Maaşı 600'ün üzerinde olan kişileri bilgi işlem departmanına alın
# Create a data frame.
data <- read.csv("input.csv")
info <- subset(data, salary > 600 & dept == "IT")
print(info)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
2014'te veya sonrasında katılan kişileri alın
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
print(retval)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
id name salary start_date dept
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27 Finance
8 8 Guru 722.50 2014-06-17 Finance
CSV Dosyasına Yazmak
R, mevcut veri çerçevesinden csv dosyası oluşturabilir. write.csv()işlevi csv dosyasını oluşturmak için kullanılır. Bu dosya çalışma dizininde oluşturulur.
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
# Write filtered data into a new file.
write.csv(retval,"output.csv")
newdata <- read.csv("output.csv")
print(newdata)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
X id name salary start_date dept
1 3 3 Michelle 611.00 2014-11-15 IT
2 4 4 Ryan 729.00 2014-05-11 HR
3 5 NA Gary 843.25 2015-03-27 Finance
4 8 8 Guru 722.50 2014-06-17 Finance
Burada X sütunu, yeni veri kümesinden gelir. Bu, dosya yazılırken ek parametreler kullanılarak bırakılabilir.
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
# Write filtered data into a new file.
write.csv(retval,"output.csv", row.names = FALSE)
newdata <- read.csv("output.csv")
print(newdata)
Yukarıdaki kodu çalıştırdığımızda şu sonucu verir -
id name salary start_date dept
1 3 Michelle 611.00 2014-11-15 IT
2 4 Ryan 729.00 2014-05-11 HR
3 NA Gary 843.25 2015-03-27 Finance
4 8 Guru 722.50 2014-06-17 Finance