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