Dati varētu pastāvēt dažādos formātos. Katram formātam R ir noteikta funkcija un arguments. Šajā apmācībā ir paskaidrots, kā importēt datus R.
Šajā apmācībā jūs uzzināsiet
- Lasiet CSV
- Lasiet Excel failus
- readxl_example ()
- lasīt_excel ()
- excel_sheets ()
- Importēt datus no citas statistikas programmatūras
- Lasīt sas
- Lasiet STATA
- Izlasiet SPSS
- Datu importēšanas paraugprakse
Lasiet CSV
Viens no visplašāk datu krātuvēm ir .csv (komatiem atdalītas vērtības) failu formāti. R startēšanas laikā ielādē virkni bibliotēku, ieskaitot paketi utils. Šī pakete ir ērta, lai atvērtu csv failus kopā ar funkciju read.csv (). Šeit ir sintakse failam read.csv
read.csv(file, header = TRUE, sep = ",")
Arguments :
- fails : PATH, kur fails ir saglabāts
- header : apstipriniet, vai failam ir galvene vai nav, pēc noklusējuma galvene ir iestatīta uz TRUE
- sep : simbols, ko izmanto mainīgā sadalīšanai. Pēc noklusējuma `,`.
Mēs lasīsim datu faila nosaukumu mtcats. Csv fails tiek saglabāts tiešsaistē. Ja jūsu .csv fails tiek glabāts lokāli, koda fragmentā varat aizstāt PATH. Neaizmirstiet to ietīt iekšā ''. PATH ir jābūt virknes vērtībai.
Mac lietotājiem lejupielādes mapes ceļš ir šāds:
"/Users/USERNAME/Downloads/FILENAME.csv"
Windows lietotājam:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Ņemiet vērā, ka mums vienmēr jānorāda faila nosaukuma paplašinājums.
- .csv
- .xlsx
- .txt
- …
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv'df <- read.csv(PATH, header = TRUE, sep = ',')length(df)
Izeja:
## [1] 12
class(df$X)
Izeja:
## [1] "factor"
R pēc noklusējuma atgriež rakstzīmju vērtības kā Faktors. Šo iestatījumu mēs varam izslēgt, pievienojot virknesAsFactors = 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)
Izeja:
## [1] "character"
Mainīgā X klase tagad ir raksturs.
Lasiet Excel failus
Excel faili ir ļoti populāri datu analītiķu vidū. Izklājlapas ir viegli apstrādājamas un elastīgas. R ir aprīkots ar bibliotēku readxl, lai importētu Excel izklājlapu.
Izmantojiet šo kodu
require(readxl)
lai pārbaudītu, vai readxl ir instalēts jūsu mašīnā. Ja instalējat r ar r-conda-essential, bibliotēka jau ir instalēta. Komandu logā jums vajadzētu redzēt:
Izeja:
Loading required package: readxl.
Ja pakete neiziet, varat to instalēt ar conda bibliotēku vai terminālā, izmantojiet conda install -c mittner r-readxl.
Izmantojiet šo komandu, lai ielādētu bibliotēku, lai importētu Excel failus.
library(readxl)
readxl_example ()
Šīs apmācības laikā mēs izmantojam paketē readxl iekļautos piemērus.
Izmantojiet kodu
readxl_example()
lai apskatītu visas bibliotēkā pieejamās izklājlapas.
Lai pārbaudītu izklājlapas ar nosaukumu clippy.xls atrašanās vietu, izmantojiet to vienkārši
readxl_example("geometry.xls")
Ja instalējat R ar conda, izklājlapas atrodas Anaconda3 / lib / R / library / readxl / extdata / filename.xls
lasīt_excel ()
Funkcija read_excel () ir ļoti noderīga, atverot xls un xlsx paplašinājumu.
Sintakse ir:
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
Mēs varam importēt izklājlapas no readxl bibliotēkas un uzskaitīt kolonnu skaitu pirmajā lapā.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Izeja:
## [1] 5
excel_sheets ()
Failu datasets.xlsx veido 4 lapas. Mēs varam uzzināt, kuras lapas ir pieejamas darbgrāmatā, izmantojot funkciju excel_sheets ()
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Izeja:
[1] "iris" "mtcars" "chickwts" "quakes"
Ja darblapā ir daudz lapu, izmantojot lapu argumentus, ir viegli izvēlēties konkrētu lapu. Mēs varam norādīt lapas nosaukumu vai lapas indeksu. Mēs varam pārbaudīt, vai abas funkcijas atgriež to pašu izvadi ar identisku ().
example <- readxl_example("datasets.xlsx")quake <- read_excel(example, sheet = "quakes")quake_1 <-read_excel(example, sheet = 4)identical(quake, quake_1)
Izeja:
## [1] TRUE
Mēs varam kontrolēt, kuras šūnas lasīt, 2 veidos
- Izmantojiet argumentu n_max, lai atgrieztu n rindas
- Izmantojiet diapazona argumentu kopā ar cell_rows vai cell_cols
Piemēram, lai importētu pirmās piecas rindas, n_max ir vienāds ar 5.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Ja mainām col_names uz FALSE, R automātiski izveido galvenes.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
iris_no_header
Datu rāmī iris_no_header R izveidoja piecus jaunus mainīgos ar nosaukumu X__1, X__2, X__3, X__4 un X__5
Varam arī izmantot argumentu diapazonu, lai atlasītu rindas un kolonnas izklājlapā. Zemāk esošajā kodā mēs izmantojam Excel stilu, lai atlasītu diapazonu no A1 līdz B5.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Izeja:
## [1] 4 2
Mēs varam redzēt, ka piemērs_1 atgriež 4 rindas ar 2 kolonnām. Datu kopai ir galvene, ka iemesls ir kategorija 4x2.
Otrajā piemērā mēs izmantojam funkciju cell_rows (), kas kontrolē atgriezamo rindu diapazonu. Ja mēs vēlamies importēt rindas no 1 līdz 5, mēs varam iestatīt cell_rows (1: 5). Ņemiet vērā, ka šūnu_rindas (1: 5) atgriež to pašu rezultātu kā šūnu_rindas (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Izeja:
## [1] 4 5
Piemērs_2 tomēr ir 4x5 matrica. Varavīksnenes datu kopā ir 5 kolonnas ar galveni. Mēs atgriežam pirmās četras rindas ar visu kolonnu galveni
Gadījumā, ja mēs vēlamies importēt rindas, kas nesākas pirmajā rindā, mums jāiekļauj col_names = FALSE. Ja mēs izmantojam diapazonu = cell_rows (2: 5), kļūst skaidrs, ka mūsu datu rāmim vairs nav galvenes.
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)
Izeja:
## [1] 150 2
Piezīme: diapazons = cell_cols ("A: B") atgriež visu šūnu iznākumu ar nulles vērtību. Datu kopa satur 150 rindas, tāpēc read_excel () atgriež rindas līdz 150. To pārbauda ar funkciju dim ().
read_excel () atgriež NA, kad šūnā parādās simbols bez skaitliskas vērtības. Trūkstošo vērtību skaitu varam saskaitīt, apvienojot divas funkcijas
- summa
- is.na
Šeit ir kods
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Izeja:
## [1] 50
Mums trūkst 50 vērtību, kas ir setosa sugām piederošās rindas.
Importēt datus no citas statistikas programmatūras
Mēs importēsim dažādu failu formātu ar debesu paketi. Šī pakete atbalsta SAS, STATA un SPSS programmatūras. Mēs varam izmantot šo funkciju, lai atvērtu dažāda veida datu kopu atbilstoši faila paplašinājumam:
- SAS: read_sas ()
- STATA: read_dta () (vai read_stata (), kas ir identiski)
- SPSS: read_sav () vai read_por (). Mums jāpārbauda paplašinājums
Šīs funkcijas ietvaros ir nepieciešams tikai viens arguments. Mums jāzina PATH, kur fails tiek glabāts. Tas ir viss, mēs esam gatavi atvērt visus failus no SAS, STATA un SPSS. Šīs trīs funkcijas pieņem arī URL.
library(haven)
haven nāk ar conda r-essential citādi dodieties uz saiti vai terminālā conda install -c conda-forge r-haven
Lasīt sas
Piemēram, mēs izmantosim IDRE uzņemšanas datu kopu.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true'df <- read_sas(PATH_sas)head(df)
Izeja:
## # 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
Lasiet STATA
STATA datu failiem varat izmantot read_dta (). Mēs izmantojam tieši to pašu datu kopu, bet glabājamies .dta failā.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true'df <- read_dta(PATH_stata)head(df)
Izeja:
## # 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
Izlasiet SPSS
Mēs izmantojam funkciju read_sav (), lai atvērtu SPSS failu. Faila paplašinājums ".sav"
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true'df <- read_sav(PATH_spss)head(df)
Izeja:
## # 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
Datu importēšanas paraugprakse
Kad mēs vēlamies importēt datus R, ir lietderīgi ieviest sekojošo kontrolsarakstu. Tas atvieglos datu pareizu importēšanu R:
- Tipisks izklājlapas formāts ir izmantot pirmās rindas kā galveni (parasti mainīgo nosaukums).
- Izvairieties nosaukt datu kopu ar tukšām atstarpēm; tas var novest pie interpretēšanas kā atsevišķa mainīgā. Varat arī izmantot “_” vai “-.”
- Priekšroka tiek dota īsiem nosaukumiem
- Neiekļaujiet simbolu nosaukumā: ti: exchange_rate _ $ _ € nav pareizs. Dodiet priekšroku nosaukumam: exchange_rate_dollar_euro
- Izmantojiet NA, ja citādi trūkst vērtības; mums vēlāk ir jātīra formāts.
Kopsavilkums
Šajā tabulā ir apkopota funkcija, kas jāizmanto dažādu veidu failu importēšanai R. Pirmajā kolonnā ir norādīta bibliotēka, kas saistīta ar funkciju. Pēdējā kolonna attiecas uz noklusējuma argumentu.
Bibliotēka |
Mērķis |
Funkcija |
Noklusējuma argumenti |
---|---|---|---|
utils |
Lasīt CSV failu |
lasīt.csv () |
fails, galvene =, PATIESA, sep = "," |
lasītxl |
Lasiet EXCEL failu |
lasīt_excel () |
ceļš, diapazons = NULL, col_names = TRUE |
patvērums |
Lasīt SAS failu |
lasīt_sas () |
ceļš |
patvērums |
Lasiet STATA failu |
lasīt datus () |
ceļš |
patvērums |
Izlasiet SPSS fille |
lasīt_sav () |
ceļš |
Šajā tabulā parādīti dažādi veidi, kā importēt atlasi ar funkciju read_excel ().
Funkcija |
Mērķi |
Argumenti |
---|---|---|
lasīt_excel () |
Lasīt n rindu skaitu |
n_max = 10 |
Atlasiet rindas un kolonnas, piemēram, Excel |
diapazons = "A1: D10" |
|
Atlasiet rindas ar rādītājiem |
diapazons = šūnu_rindas (1: 3) |
|
Atlasiet kolonnas ar burtiem |
diapazons = šūnu_cols ("A: C") |