Εισαγωγή δεδομένων σε R: Διαβάστε αρχεία CSV, Excel, SPSS, Stata, SAS

Τα δεδομένα θα μπορούσαν να υπάρχουν σε διάφορες μορφές. Για κάθε μορφή R έχει συγκεκριμένη λειτουργία και όρισμα. Αυτό το σεμινάριο εξηγεί τον τρόπο εισαγωγής δεδομένων στο R.

Διαβάστε το CSV

Ένα από τα πιο ευρέως αποθηκευτικά δεδομένα είναι οι μορφές αρχείων .csv (τιμές διαχωρισμένες με κόμμα). Το R φορτώνει μια σειρά από βιβλιοθήκες κατά την εκκίνηση, συμπεριλαμβανομένου του πακέτου Utils. Αυτό το πακέτο είναι βολικό για το άνοιγμα αρχείων csv σε συνδυασμό με τη συνάρτηση reading.csv(). Εδώ είναι η σύνταξη για το read.csv

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

Διαφωνία:

  • φιλέτο: PATH όπου είναι αποθηκευμένο το αρχείο
  • επί κεφαλής: επιβεβαιώστε εάν το αρχείο έχει κεφαλίδα ή όχι, από προεπιλογή, η κεφαλίδα έχει οριστεί σε TRUE
  • Σεπτέμβριος: το σύμβολο που χρησιμοποιείται για τον διαχωρισμό της μεταβλητής. Από προεπιλογή, `,`.

Θα διαβάσουμε το όνομα αρχείου δεδομένων mtcats. Το αρχείο csv αποθηκεύεται στο διαδίκτυο. Εάν το αρχείο σας .csv είναι αποθηκευμένο τοπικά, μπορείτε να αντικαταστήσετε το PATH μέσα στο απόσπασμα κώδικα. Μην ξεχάσετε να το τυλίξετε μέσα στο " ". Το PATH πρέπει να είναι μια τιμή συμβολοσειράς.

Για χρήστη mac, η διαδρομή για το φάκελο λήψης είναι:

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

Για χρήστες Windows:

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

Σημειώστε ότι, θα πρέπει πάντα να καθορίζουμε την επέκταση του ονόματος αρχείου.

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

Παραγωγή

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

Παραγωγή

## [1] "factor"

Το R, από προεπιλογή, επιστρέφει τιμές χαρακτήρων ως Factor. Μπορούμε να απενεργοποιήσουμε αυτήν τη ρύθμιση προσθέτοντας stringsAsFactors = 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)

Παραγωγή

## [1] "character"

Η κλάση για τη μεταβλητή X είναι πλέον χαρακτήρας.

Διαβάστε αρχεία Excel

Excel Τα αρχεία είναι πολύ δημοφιλή μεταξύ των αναλυτών δεδομένων. Τα υπολογιστικά φύλλα είναι εύκολα στη χρήση και ευέλικτα. Το R είναι εξοπλισμένο με βιβλιοθήκη readxl για εισαγωγή υπολογιστικού φύλλου Excel.

Χρησιμοποιήστε αυτόν τον κωδικό

require(readxl)

για να ελέγξετε εάν το readxl είναι εγκατεστημένο στο μηχάνημά σας. Εάν εγκαταστήσετε το r με το r-conda-essential, η βιβλιοθήκη είναι ήδη εγκατεστημένη. Θα πρέπει να δείτε στο παράθυρο εντολών:

Παραγωγή

Loading required package: readxl.

Εάν το πακέτο δεν βγαίνει, μπορείτε να το εγκαταστήσετε με το conda βιβλιοθήκη ή στο τερματικό, χρησιμοποιήστε conda install -c mittner r-readxl.

Χρησιμοποιήστε την ακόλουθη εντολή για να φορτώσετε τη βιβλιοθήκη για να εισαγάγετε αρχεία excel.

library(readxl)

readxl_example()

Χρησιμοποιούμε τα παραδείγματα που περιλαμβάνονται στο πακέτο readxl κατά τη διάρκεια αυτού του σεμιναρίου.

Χρησιμοποιήστε τον κωδικό

readxl_example()

για να δείτε όλα τα διαθέσιμα υπολογιστικά φύλλα στη βιβλιοθήκη.

Readxl_Example

Για να ελέγξετε τη θέση του υπολογιστικού φύλλου με το όνομα clippy.xls, χρησιμοποιήστε απλά

readxl_example("geometry.xls")

Readxl_Example

Εάν εγκαταστήσετε το R με conda, τα υπολογιστικά φύλλα βρίσκονται στο Anaconda3/lib/R/library/readxl/extdata/filename.xls

read_excel()

Η συνάρτηση read_excel() είναι πολύ χρήσιμη όταν πρόκειται για άνοιγμα xls και xlsx επέκταση.

Η σύνταξη είναι:

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

Μπορούμε να εισαγάγουμε τα υπολογιστικά φύλλα από τη βιβλιοθήκη του readxl και να μετρήσουμε τον αριθμό των στηλών στο πρώτο φύλλο.

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

Παραγωγή

## [1] 5

excel_sheets()

Το αρχείο databases.xlsx αποτελείται από 4 φύλλα. Μπορούμε να βρούμε ποια φύλλα είναι διαθέσιμα στο βιβλίο εργασίας χρησιμοποιώντας τη συνάρτηση excel_sheets().

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Παραγωγή

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

Εάν ένα φύλλο εργασίας περιλαμβάνει πολλά φύλλα, είναι εύκολο να επιλέξετε ένα συγκεκριμένο φύλλο χρησιμοποιώντας τα ορίσματα του φύλλου. Μπορούμε να καθορίσουμε το όνομα του φύλλου ή του ευρετηρίου φύλλου. Μπορούμε να επαληθεύσουμε εάν και οι δύο συναρτήσεις επιστρέφουν την ίδια έξοδο με την identical().

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

Παραγωγή

## [1] TRUE

Μπορούμε να ελέγξουμε ποια κελιά θα διαβάσουμε με 2 τρόπους

  1. Χρησιμοποιήστε το όρισμα n_max για να επιστρέψετε n σειρές
  2. Χρησιμοποιήστε το όρισμα εύρους σε συνδυασμό με cell_rows ή cell_cols

Για παράδειγμα, ορίσαμε n_max ίσο με 5 για εισαγωγή των πρώτων πέντε σειρών.

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

Excel_Φύλλα

Αν αλλάξουμε col_names σε FALSE, το R δημιουργεί αυτόματα τις κεφαλίδες.

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

iris_no_header

Στο πλαίσιο δεδομένων iris_no_header, ο R δημιούργησε πέντε νέες μεταβλητές που ονομάζονται X__1, X__2, X__3, X__4 και X__5

Excel_Φύλλα

Μπορούμε επίσης να χρησιμοποιήσουμε το εύρος ορισμάτων για να επιλέξουμε γραμμές και στήλες στο υπολογιστικό φύλλο. Στον παρακάτω κώδικα, χρησιμοποιούμε το στυλ excel για να επιλέξουμε το εύρος A1 έως B5.

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

Παραγωγή

## [1] 4 2

Μπορούμε να δούμε ότι το example_1 επιστρέφει 4 σειρές με 2 στήλες. Το σύνολο δεδομένων έχει κεφαλίδα, ο λόγος που η διάσταση είναι 4×2.

Excel_Φύλλα

Στο δεύτερο παράδειγμα, χρησιμοποιούμε τη συνάρτηση cell_rows() που ελέγχει το εύρος των γραμμών που θα επιστρέψουν. Αν θέλουμε να εισάγουμε τις σειρές 1 έως 5, μπορούμε να ορίσουμε cell_rows(1:5). Σημειώστε ότι το cell_rows(1:5) επιστρέφει την ίδια έξοδο με το cell_rows(5:1).

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

Παραγωγή

## [1] 4 5

Ωστόσο, το example_2 είναι ένας πίνακας 4×5. Το σύνολο δεδομένων ίριδας έχει 5 στήλες με κεφαλίδα. Επιστρέφουμε τις τέσσερις πρώτες σειρές με την κεφαλίδα όλων των στηλών

Excel_Φύλλα

Σε περίπτωση που θέλουμε να εισαγάγουμε σειρές που δεν ξεκινούν από την πρώτη σειρά, πρέπει να συμπεριλάβουμε col_names = FALSE. Εάν χρησιμοποιήσουμε range = cell_rows(2:5), γίνεται προφανές ότι το πλαίσιο δεδομένων μας δεν έχει πλέον κεφαλίδα.

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)

Excel_Φύλλα

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

Παραγωγή

## [1] 150   2

Σημείωση: range = cell_cols(“A:B”), επιστρέφει την έξοδο όλων των κελιών με μη μηδενική τιμή. Το σύνολο δεδομένων περιέχει 150 σειρές, επομένως, η read_excel() επιστρέφει σειρές έως και 150. Αυτό επαληθεύεται με τη συνάρτηση dim().

Η read_excel() επιστρέφει NA όταν ένα σύμβολο χωρίς αριθμητική τιμή εμφανίζεται στο κελί. Μπορούμε να μετρήσουμε τον αριθμό των τιμών που λείπουν με το συνδυασμό δύο συναρτήσεων

  1. άθροισμα
  2. είναι.να

Εδώ είναι ο κωδικός

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

Παραγωγή

## [1] 50

Μας λείπουν 50 τιμές, οι οποίες είναι οι σειρές που ανήκουν στο είδος setosa.

Εισαγωγή δεδομένων από άλλο Στατιστικό λογισμικό

Θα εισάγουμε διαφορετική μορφή αρχείων με το πακέτο heaven. Υποστήριξη αυτού του πακέτου SAS, λογισμικά STATA και SPSS. Μπορούμε να χρησιμοποιήσουμε την ακόλουθη συνάρτηση για να ανοίξουμε διαφορετικούς τύπους δεδομένων, σύμφωνα με την επέκταση του αρχείου:

  • SAS: read_sas()
  • STATA: read_dta() (ή read_stata(), που είναι πανομοιότυπα)
  • SPSS: read_sav() ή read_por(). Πρέπει να ελέγξουμε την επέκταση

Απαιτείται μόνο ένα όρισμα σε αυτές τις συναρτήσεις. Πρέπει να γνωρίζουμε το PATH όπου είναι αποθηκευμένο το αρχείο. Αυτό ήταν, είμαστε έτοιμοι να ανοίξουμε όλα τα αρχεία από SAS, STATA και SPSS. Αυτές οι τρεις συναρτήσεις δέχονται επίσης μια διεύθυνση URL.

library(haven)

παράδεισος έρχεται με conda r-ουσιαστικό διαφορετικά πηγαίνετε στο σύνδεσμος ή στο τερματικό conda install -c conda-forge r-haven

Διαβάστε sas

Για το παράδειγμά μας, πρόκειται να χρησιμοποιήσουμε το σύνολο δεδομένων αποδοχής από το IDRE.

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

Παραγωγή

## # A tibble: 6 x 4
##   ADMIT   GRE   GPA  RANK
##   <dbl> <dbl> <dbl> <dbl>
## 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

Διαβάστε STATA

Για αρχεία δεδομένων STATA μπορείτε να χρησιμοποιήσετε read_dta(). Χρησιμοποιούμε ακριβώς το ίδιο σύνολο δεδομένων αλλά αποθηκεύουμε σε αρχείο .dta.

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

Παραγωγή

## # A tibble: 6 x 4				
##   admit   gre   gpa  rank				
##   <dbl> <dbl> <dbl> <dbl>				
## 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

Διαβάστε το SPSS

Χρησιμοποιούμε τη συνάρτηση read_sav() για να ανοίξουμε ένα αρχείο SPSS. Η επέκταση αρχείου ".sav"

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

Παραγωγή

## # A tibble: 6 x 4				
##   admit   gre   gpa  rank				
##   <dbl> <dbl> <dbl> <dbl>				
## 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

καλυτερα πρακτικες για Εισαγωγη Δεδομενων

Όταν θέλουμε να εισάγουμε δεδομένα στο R, είναι χρήσιμο να εφαρμόσουμε την παρακάτω λίστα ελέγχου. Θα διευκολύνει τη σωστή εισαγωγή δεδομένων στο R:

  • Η τυπική μορφή για ένα υπολογιστικό φύλλο είναι η χρήση των πρώτων σειρών ως κεφαλίδας (συνήθως όνομα μεταβλητών).
  • Αποφύγετε να ονομάσετε ένα σύνολο δεδομένων με κενά κενά. μπορεί να οδηγήσει στην ερμηνεία ως ξεχωριστή μεταβλητή. Εναλλακτικά, προτιμήστε να χρησιμοποιήσετε '_' ή '-.'
  • Προτιμώνται τα σύντομα ονόματα
  • Μην συμπεριλάβετε σύμβολο στο όνομα: π.χ.: exchange_rate_$_€ δεν είναι σωστό. Προτιμήστε να το ονομάσετε: exchange_rate_dollar_euro
  • Χρησιμοποιήστε NA για τιμές που λείπουν διαφορετικά. πρέπει να καθαρίσουμε τη μορφή αργότερα.

Σύνοψη

Ο παρακάτω πίνακας συνοψίζει τη συνάρτηση που θα χρησιμοποιηθεί για την εισαγωγή διαφορετικών τύπων αρχείων στο R. Η πρώτη στήλη αναφέρει τη βιβλιοθήκη που σχετίζεται με τη συνάρτηση. Η τελευταία στήλη αναφέρεται στο προεπιλεγμένο όρισμα.

Βιβλιοθήκη Σκοπός Λειτουργία Προεπιλεγμένα επιχειρήματα
σκεύη Διαβάστε το αρχείο CSV read.csv() αρχείο, κεφαλίδα =, TRUE, sep = ","
readxl Διαβάστε το αρχείο EXCEL read_excel() διαδρομή, εύρος = NULL, ονόματα_κολώνων = TRUE
επίνειο Διαβάστε το αρχείο SAS read_sas() μονοπάτι
επίνειο Διαβάστε το αρχείο STATA read_stata() μονοπάτι
επίνειο Διαβάστε το συμπλήρωμα SPSS read_sav() μονοπάτι

Ο παρακάτω πίνακας δείχνει τους διαφορετικούς τρόπους εισαγωγής μιας επιλογής με τη συνάρτηση read_excel().

Λειτουργία Σκοπός Επιχειρήματα
read_excel() Διαβάστε n αριθμό σειρών n_max = 10
Επιλέξτε γραμμές και στήλες όπως στο excel εύρος = "A1:D10"
Επιλέξτε σειρές με ευρετήρια range= cell_rows (1:3)
Επιλέξτε στήλες με γράμματα range = cell_cols ("A:C")