Nhập dữ liệu vào R: Đọc tệp CSV, Excel, SPSS, Stata, SAS

Mục lục:

Anonim

Dữ liệu có thể tồn tại ở nhiều định dạng khác nhau. Đối với mỗi định dạng R có một chức năng và đối số cụ thể. Hướng dẫn này giải thích cách nhập dữ liệu vào R.

Trong hướng dẫn này, bạn sẽ học

  • Đọc CSV
  • Đọc tệp Excel
  • readxl_example ()
  • read_excel ()
  • excel_sheets ()
  • Nhập dữ liệu từ phần mềm Thống kê khác
  • Đọc sas
  • Đọc STATA
  • Đọc SPSS
  • Các phương pháp hay nhất để Nhập dữ liệu

Đọc CSV

Một trong những nơi lưu trữ dữ liệu rộng rãi nhất là các định dạng tệp .csv (các giá trị được phân tách bằng dấu phẩy). R tải một mảng thư viện trong quá trình khởi động, bao gồm cả gói utils. Gói này thuận tiện để mở các tệp csv kết hợp với hàm read.csv (). Đây là cú pháp cho read.csv

read.csv(file, header = TRUE, sep = ",")

Lập luận :

  • tệp : PATH nơi tệp được lưu trữ
  • header : xác nhận xem tệp có tiêu đề hay không, theo mặc định, tiêu đề được đặt thành TRUE
  • sep : ký hiệu dùng để tách biến. Theo mặc định, `, '.

Chúng tôi sẽ đọc tên tệp dữ liệu mtcats. Tệp csv được lưu trữ trực tuyến. Nếu tệp .csv của bạn được lưu trữ cục bộ, bạn có thể thay thế PATH bên trong đoạn mã. Đừng quên bọc nó bên trong ''. PATH cần phải là một giá trị chuỗi.

Đối với người dùng mac, đường dẫn cho thư mục tải xuống là:

 "/Users/USERNAME/Downloads/FILENAME.csv"

Đối với người dùng windows:

"C:\Users\USERNAME\Downloads\FILENAME.csv"

Lưu ý rằng, chúng ta phải luôn chỉ định phần mở rộng của tên tệp.

  • .csv
  • .xlsx
  • .txt
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)

Đầu ra:

## [1] 12
class(df$X)

Đầu ra:

## [1] "factor"

R, theo mặc định, trả về giá trị ký tự dưới dạng Hệ số. Chúng ta có thể tắt cài đặt này bằng cách thêm stringAsFactors = FALSE.

PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE)class(df$X)

Đầu ra:

## [1] "character"

Lớp cho biến X bây giờ là một ký tự.

Đọc tệp Excel

Các tệp Excel rất phổ biến trong giới phân tích dữ liệu. Bảng tính rất dễ làm việc và linh hoạt. R được trang bị thư viện readxl để nhập bảng tính Excel.

Sử dụng mã này

require(readxl)

để kiểm tra xem readxl đã được cài đặt trong máy của bạn chưa. Nếu bạn cài đặt r bằng r-conda-essential, thì thư viện đã được cài đặt. Bạn sẽ thấy trong cửa sổ lệnh:

Đầu ra:

Loading required package: readxl. 

Nếu gói không thoát, bạn có thể cài đặt nó bằng thư viện conda hoặc trong terminal, sử dụng conda install -c mittner r-readxl.

Sử dụng lệnh sau để tải thư viện để nhập tệp excel.

library(readxl)

readxl_example ()

Chúng tôi sử dụng các ví dụ có trong gói readxl trong hướng dẫn này.

Sử dụng mã

readxl_example()

để xem tất cả các bảng tính có sẵn trong thư viện.

Để kiểm tra vị trí của bảng tính có tên clippy.xls, sử dụng đơn giản

readxl_example("geometry.xls")

Nếu bạn cài đặt R bằng conda, các bảng tính được đặt trong Anaconda3 / lib / R / library / readxl / extdata / filename.xls

read_excel ()

Hàm read_excel () rất được sử dụng khi nói đến việc mở xls và xlsx.

Cú pháp là:

read_excel(PATH, sheet = NULL, range= NULL, col_names = TRUE)arguments:-PATH: Path where the excel is located-sheet: Select the sheet to import. By default, all-range: Select the range to import. By default, all non-null cells-col_names: Select the columns to import. By default, all non-null columns

Chúng ta có thể nhập bảng tính từ thư viện readxl và đếm số cột trong trang tính đầu tiên.

# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)

Đầu ra:

## [1] 5

excel_sheets ()

Tệp datasets.xlsx bao gồm 4 trang tính. Chúng tôi có thể tìm ra trang tính nào có sẵn trong sổ làm việc bằng cách sử dụng hàm excel_sheets ()

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Đầu ra:

[1] "iris" "mtcars" "chickwts" "quakes"

Nếu một trang tính bao gồm nhiều trang tính, bạn có thể dễ dàng chọn một trang tính cụ thể bằng cách sử dụng các đối số trang tính. Chúng ta có thể chỉ định tên của trang tính hoặc chỉ mục của trang tính. Chúng ta có thể xác minh xem cả hai hàm đều trả về cùng một đầu ra với same ().

example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)

Đầu ra:

## [1] TRUE

Chúng tôi có thể kiểm soát ô cần đọc theo 2 cách

  1. Sử dụng đối số n_max để trả về n hàng
  2. Sử dụng đối số phạm vi kết hợp với cell_rows hoặc cell_cols

Ví dụ, chúng tôi đặt n_max bằng 5 để nhập năm hàng đầu tiên.

# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)

Nếu chúng ta thay đổi col_names thành FALSE, R sẽ tự động tạo tiêu đề.

# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)

iris_no_header

Trong khung dữ liệu iris_no_header, R đã tạo năm biến mới có tên là X__1, X__2, X__3, X__4 và X__5

Chúng ta cũng có thể sử dụng phạm vi đối số để chọn hàng và cột trong bảng tính. Trong đoạn mã dưới đây, chúng tôi sử dụng kiểu excel để chọn phạm vi A1 đến B5.

# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)

Đầu ra:

## [1] 4 2

Chúng ta có thể thấy rằng example_1 trả về 4 hàng với 2 cột. Tập dữ liệu có tiêu đề, lý do kích thước là 4x2.

Trong ví dụ thứ hai, chúng tôi sử dụng hàm cell_rows () để kiểm soát phạm vi các hàng cần trả về. Nếu chúng ta muốn nhập các hàng từ 1 đến 5, chúng ta có thể đặt cell_rows (1: 5). Lưu ý rằng, cell_rows (1: 5) trả về cùng một đầu ra với cell_rows (5: 1).

# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)

Đầu ra:

## [1] 4 5

Tuy nhiên, ví dụ_2 là ma trận 4x5. Tập dữ liệu mống mắt có 5 cột với tiêu đề. Chúng tôi trả về bốn hàng đầu tiên với tiêu đề của tất cả các cột

Trong trường hợp chúng ta muốn nhập các hàng không bắt đầu ở hàng đầu tiên, chúng ta phải bao gồm col_names = FALSE. Nếu chúng ta sử dụng range = cell_rows (2: 5), rõ ràng là khung dữ liệu của chúng ta không có tiêu đề nữa.

iris_row_with_header <-read_excel(example, range =cell_rows(2:3), col_names=TRUE)iris_row_no_header <-read_excel(example, range =cell_rows(2:3),col_names =FALSE)

We can select the columns with the letter, like in Excel.# Select columns A and Bcol <-read_excel(example, range =cell_cols("A:B"))dim(col)

Đầu ra:

## [1] 150 2 

Lưu ý: range = cell_cols ("A: B"), trả về kết quả đầu ra tất cả các ô có giá trị không rỗng. Tập dữ liệu chứa 150 hàng, do đó, read_excel () trả về các hàng có tối đa 150. Điều này được xác minh bằng hàm dim ().

read_excel () trả về NA khi một ký hiệu không có giá trị số xuất hiện trong ô. Chúng ta có thể đếm số lượng giá trị bị thiếu với sự kết hợp của hai hàm

  1. Tổng
  2. is.na

Đây là mã

iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))

Đầu ra:

## [1] 50

Chúng tôi còn thiếu 50 giá trị, là các hàng thuộc loài setosa.

Nhập dữ liệu từ phần mềm Thống kê khác

Chúng tôi sẽ nhập các định dạng tệp khác nhau với gói thiên đường. Gói này hỗ trợ phần mềm SAS, STATA và SPSS. Chúng ta có thể sử dụng chức năng sau để mở các loại tập dữ liệu khác nhau, theo phần mở rộng của tệp:

  • SAS: read_sas ()
  • STATA: read_dta () (hoặc read_stata (), giống hệt nhau)
  • SPSS: read_sav () hoặc read_por (). Chúng tôi cần kiểm tra phần mở rộng

Chỉ một đối số được yêu cầu trong hàm này. Chúng ta cần biết PATH nơi tệp được lưu trữ. Vậy là xong, chúng tôi đã sẵn sàng để mở tất cả các tệp từ SAS, STATA và SPSS. Ba hàm này cũng chấp nhận một URL.

library(haven)

haven đi kèm với conda r-Essential, nếu không hãy truy cập liên kết hoặc trong terminal conda cài đặt -c conda-forge r-haven

Đọc sas

Đối với ví dụ của chúng tôi, chúng tôi sẽ sử dụng tập dữ liệu tuyển sinh từ IDRE.

PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)

Đầu ra:

## # A tibble: 6 x 4## ADMIT GRE GPA RANK##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Đọc STATA

Đối với các tệp dữ liệu STATA, bạn có thể sử dụng read_dta (). Chúng tôi sử dụng chính xác cùng một tập dữ liệu nhưng lưu trữ trong tệp .dta.

PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)

Đầu ra:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Đọc SPSS

Chúng tôi sử dụng hàm read_sav () để mở tệp SPSS. Phần mở rộng tệp ".sav"

PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)

Đầu ra:

## # A tibble: 6 x 4## admit gre gpa rank##    ## 1 0 380 3.61 3## 2 1 660 3.67 3## 3 1 800 4.00 1## 4 1 640 3.19 4## 5 0 520 2.93 4## 6 1 760 3.00 2

Các phương pháp hay nhất để Nhập dữ liệu

Khi chúng ta muốn nhập dữ liệu vào R, sẽ hữu ích khi triển khai danh sách kiểm tra sau. Nó sẽ giúp bạn dễ dàng nhập dữ liệu một cách chính xác vào R:

  • Định dạng điển hình cho bảng tính là sử dụng các hàng đầu tiên làm tiêu đề (thường là tên các biến).
  • Tránh đặt tên tập dữ liệu có khoảng trống; nó có thể dẫn đến việc diễn giải như một biến riêng biệt. Ngoài ra, thích sử dụng '_' hoặc '-.'
  • Tên ngắn được ưu tiên
  • Không bao gồm ký hiệu trong tên: nghĩa là: exchange_rate _ $ _ € là không chính xác. Thích đặt tên cho nó: exchange_rate_dollar_euro
  • Sử dụng NA cho các giá trị bị thiếu nếu không; chúng ta cần làm sạch định dạng sau.

Tóm lược

Bảng sau đây tóm tắt hàm để sử dụng để nhập các loại tệp khác nhau trong R. Cột một cho biết thư viện liên quan đến hàm. Cột cuối cùng đề cập đến đối số mặc định.

Thư viện

Mục tiêu

Chức năng

Đối số mặc định

utils

Đọc tệp CSV

read.csv ()

tệp, tiêu đề =, TRUE, sep = ","

readxl

Đọc tệp EXCEL

read_excel ()

đường dẫn, phạm vi = NULL, col_names = TRUE

trú ẩn

Đọc tệp SAS

read_sas ()

con đường

trú ẩn

Đọc tệp STATA

read_stata ()

con đường

trú ẩn

Đọc SPSS fille

read_sav ()

con đường

Bảng sau đây cho thấy các cách khác nhau để nhập một lựa chọn với hàm read_excel ().

Chức năng

Mục tiêu

Tranh luận

read_excel ()

Đọc n số hàng

n_max = 10

Chọn các hàng và cột như trong excel

range = "A1: D10"

Chọn các hàng có chỉ mục

range = cell_rows (1: 3)

Chọn các cột có chữ cái

range = cell_cols ("A: C")