R - Tệp CSV
Trong R, chúng ta có thể đọc dữ liệu từ các tệp được lưu trữ bên ngoài môi trường R. Chúng tôi cũng có thể ghi dữ liệu vào các tệp sẽ được lưu trữ và truy cập bởi hệ điều hành. R có thể đọc và ghi thành nhiều định dạng tệp khác nhau như csv, excel, xml, v.v.
Trong chương này, chúng ta sẽ học cách đọc dữ liệu từ tệp csv và sau đó ghi dữ liệu vào tệp csv. Tệp phải có trong thư mục làm việc hiện tại để R có thể đọc nó. Tất nhiên chúng ta cũng có thể thiết lập thư mục của riêng mình và đọc các tệp từ đó.
Nhận và thiết lập thư mục làm việc
Bạn có thể kiểm tra thư mục nào mà không gian làm việc R đang trỏ đến bằng cách sử dụng getwd()chức năng. Bạn cũng có thể đặt một thư mục làm việc mới bằng cách sử dụngsetwd()chức năng.
# Get and print current working directory.
print(getwd())
# Set current working directory.
setwd("/web/com")
# Get and print current working directory.
print(getwd())
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[1] "/web/com/1441086124_2016"
[1] "/web/com"
Kết quả này phụ thuộc vào hệ điều hành của bạn và thư mục hiện tại nơi bạn đang làm việc.
Nhập dưới dạng tệp CSV
Tệp csv là một tệp văn bản trong đó các giá trị trong các cột được phân tách bằng dấu phẩy. Hãy xem xét dữ liệu sau có trong tệp có têninput.csv.
Bạn có thể tạo tệp này bằng Windows notepad bằng cách sao chép và dán dữ liệu này. Lưu tệp dưới dạnginput.csv bằng cách sử dụng tùy chọn lưu dưới dạng tất cả tệp (*. *) trong 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
Đọc tệp CSV
Sau đây là một ví dụ đơn giản về read.csv() chức năng đọc tệp CSV có sẵn trong thư mục làm việc hiện tại của bạn -
data <- read.csv("input.csv")
print(data)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
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
Phân tích tệp CSV
Theo mặc định, read.csv()hàm cung cấp đầu ra dưới dạng khung dữ liệu. Có thể dễ dàng kiểm tra điều này như sau. Ngoài ra, chúng ta có thể kiểm tra số lượng cột và hàng.
data <- read.csv("input.csv")
print(is.data.frame(data))
print(ncol(data))
print(nrow(data))
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[1] TRUE
[1] 5
[1] 8
Khi chúng tôi đọc dữ liệu trong khung dữ liệu, chúng tôi có thể áp dụng tất cả các chức năng áp dụng cho khung dữ liệu như được giải thích trong phần tiếp theo.
Nhận mức lương tối đa
# Create a data frame.
data <- read.csv("input.csv")
# Get the max salary from data frame.
sal <- max(data$salary)
print(sal)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
[1] 843.25
Nhận thông tin chi tiết về người có mức lương tối đa
Chúng ta có thể tìm nạp các hàng đáp ứng các tiêu chí bộ lọc cụ thể tương tự như mệnh đề where trong SQL.
# 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)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
id name salary start_date dept
5 NA Gary 843.25 2015-03-27 Finance
Nhận tất cả những người làm việc trong bộ phận CNTT
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset( data, dept == "IT")
print(retval)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
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
Nhận những người trong bộ phận CNTT có mức lương lớn hơn 600
# Create a data frame.
data <- read.csv("input.csv")
info <- subset(data, salary > 600 & dept == "IT")
print(info)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
id name salary start_date dept
1 1 Rick 623.3 2012-01-01 IT
3 3 Michelle 611.0 2014-11-15 IT
Thu hút những người đã tham gia vào hoặc sau năm 2014
# Create a data frame.
data <- read.csv("input.csv")
retval <- subset(data, as.Date(start_date) > as.Date("2014-01-01"))
print(retval)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
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
Ghi vào tệp CSV
R có thể tạo tệp csv dạng khung dữ liệu hiện có. Cácwrite.csv()được sử dụng để tạo tệp csv. Tệp này được tạo trong thư mục làm việc.
# 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)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
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
Ở đây, cột X đến từ tập dữ liệu mới hơn. Điều này có thể được loại bỏ bằng cách sử dụng các tham số bổ sung trong khi ghi tệp.
# 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)
Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:
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