R - File CSV
Di R, kita dapat membaca data dari file yang disimpan di luar lingkungan R. Kami juga dapat menulis data ke dalam file yang akan disimpan dan diakses oleh sistem operasi. R dapat membaca dan menulis ke dalam berbagai format file seperti csv, excel, xml dll.
Pada bab ini kita akan belajar membaca data dari file csv kemudian menulis data ke dalam file csv. File tersebut harus ada di direktori kerja saat ini sehingga R dapat membacanya. Tentu saja kita juga dapat mengatur direktori kita sendiri dan membaca file dari sana.
Mendapatkan dan Mengatur Direktori Kerja
Anda dapat memeriksa direktori mana yang ditunjuk oleh ruang kerja R menggunakan file getwd()fungsi. Anda juga dapat mengatur direktori kerja baru menggunakansetwd()fungsi.
# Get and print current working directory.
print(getwd())
# Set current working directory.
setwd("/web/com")
# Get and print current working directory.
print(getwd())
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
[1] "/web/com/1441086124_2016"
[1] "/web/com"
Hasil ini tergantung pada OS Anda dan direktori tempat Anda bekerja saat ini.
Masukan sebagai File CSV
File csv adalah file teks yang nilai dalam kolomnya dipisahkan dengan koma. Mari pertimbangkan data berikut yang ada di file bernamainput.csv.
Anda dapat membuat file ini menggunakan windows notepad dengan menyalin dan menempelkan data ini. Simpan file sebagaiinput.csv menggunakan opsi save As All files (*. *) di notepad.
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
Membaca File CSV
Berikut adalah contoh sederhana dari read.csv() berfungsi untuk membaca file CSV yang tersedia di direktori kerja Anda saat ini -
data <- read.csv("input.csv")
print(data)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
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
Menganalisis File CSV
Secara default, read.csv()fungsi memberikan keluaran sebagai bingkai data. Ini dapat dengan mudah diperiksa sebagai berikut. Kami juga dapat memeriksa jumlah kolom dan baris.
data <- read.csv("input.csv")
print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
[1] TRUE
[1] 5
[1] 8
Setelah kita membaca data dalam bingkai data, kita dapat menerapkan semua fungsi yang berlaku untuk bingkai data seperti yang dijelaskan di bagian selanjutnya.
Dapatkan gaji maksimal
# Create a data frame.
data <- read.csv("input.csv")
# Get the max salary from data frame.
sal <- max(data$salary)
print(sal)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
[1] 843.25
Dapatkan detail orang dengan gaji maksimal
Kita dapat mengambil baris yang memenuhi kriteria filter tertentu yang mirip dengan SQL where clause.
# 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)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
id name salary start_date dept
5 NA Gary 843.25 2015-03-27 Finance
Dapatkan semua orang yang bekerja di departemen TI
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset( data, dept == "IT")
print(retval)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
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
Dapatkan orang-orang di departemen TI yang gajinya lebih dari 600
# Create a data frame.
data <- read.csv("input.csv")
info <- subset(data, salary > 600 & dept == "IT")
print(info)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
Dapatkan orang-orang yang bergabung pada atau setelah 2014
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
print(retval)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
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
Menulis ke dalam File CSV
R dapat membuat file csv dari data frame yang ada. Ituwrite.csv()fungsi digunakan untuk membuat file csv. File ini dibuat di direktori kerja.
# 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)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
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
Di sini kolom X berasal dari kumpulan data newper. Ini dapat dijatuhkan menggunakan parameter tambahan saat menulis file.
# 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)
Ketika kita menjalankan kode di atas, hasilnya adalah sebagai berikut -
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