Подаци могу постојати у различитим форматима. За сваки формат Р има одређену функцију и аргумент. Овај водич објашњава како се подаци увозе у Р.
У овом упутству ћете научити
- Прочитајте ЦСВ
- Читајте Екцел датотеке
- реадкл_екампле ()
- реад_екцел ()
- екцел_схеетс ()
- Увоз података из другог статистичког софтвера
- Читај сас
- Прочитајте СТАТА
- Прочитајте СПСС
- Најбоље праксе за увоз података
Прочитајте ЦСВ
Једно од најраспрострањенијих складишта података су формати датотека .цсв (вредности одвојене зарезима). Р учитава низ библиотека током покретања, укључујући и пакет утилс. Овај пакет је погодан за отварање цсв датотека у комбинацији са функцијом реад.цсв (). Ево синтаксе за реад.цсв
read.csv(file, header = TRUE, sep = ",")
Аргумент :
- датотека : ПУТ где се датотека чува
- заглавље : потврдите да ли датотека има заглавље или не, подразумевано је заглавље постављено на ТРУЕ
- сеп : симбол који се користи за поделу променљиве. Подразумевано, `,`.
Прочитаћемо име датотеке података мтцатс. ЦСВ датотека се чува на мрежи. Ако се ваша .цсв датотека складишти локално, ПАТХ можете заменити унутар исечка кода. Не заборавите да га умотате унутра ''. ПАТХ мора бити вредност низа.
За кориснике Мац рачунара, путања до мапе за преузимање је:
"/Users/USERNAME/Downloads/FILENAME.csv"
За Виндовс кориснике:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Имајте на уму да увек треба да наведемо екстензију имена датотеке.
- .цсв
- .клск
- .ткт
- …
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"
Р, подразумевано, враћа вредности знакова као фактор. Ову поставку можемо искључити додавањем стрингсАсФацторс = ФАЛСЕ.
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"
Класа за променљиву Кс сада је карактер.
Читајте Екцел датотеке
Екцел датотеке су веома популарне међу аналитичарима података. Табеле су једноставне за рад и флексибилне. Р је опремљен библиотеком реадкл за увоз Екцел табеле.
Користите овај код
require(readxl)
да бисте проверили да ли је реадкл инсталиран у вашој машини. Ако инсталирате р са р-цонда-Ессентиал, библиотека је већ инсталирана. У командном прозору би требало да видите:
Излаз:
Loading required package: readxl.
Ако пакет не изађе, можете га инсталирати са библиотеком цонда или у терминалу, користите цонда инсталл -ц миттнер р-реадкл.
Користите следећу наредбу за учитавање библиотеке за увоз екцел датотека.
library(readxl)
реадкл_екампле ()
Током овог водича користимо примере укључене у пакет реадкл.
Користите код
readxl_example()
да бисте видели све доступне прорачунске табеле у библиотеци.
Једноставна употреба за проверу локације прорачунске табеле назване цлиппи.клс
readxl_example("geometry.xls")
Ако инсталирате Р са цондом, прорачунске табеле се налазе у Анацонда3 / либ / Р / либрари / реадкл / ектдата / филенаме.клс
реад_екцел ()
Функција реад_екцел () је од велике користи када је реч о отварању клс и клск проширења.
Синтакса је:
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
Табеле можемо да увозимо из библиотеке реадкл и избројимо број колона на првом листу.
# Store the path of `datasets.xlsx`example <- readxl_example("datasets.xlsx")# Import the spreadsheetdf <- read_excel(example)# Count the number of columnslength(df)
Излаз:
## [1] 5
екцел_схеетс ()
Датотека датасетс.клск састоји се од 4 листа. Који листови су доступни у радној свесци можемо сазнати помоћу функције екцел_схеетс ()
example <- readxl_example("datasets.xlsx")excel_sheets(example)
Излаз:
[1] "iris" "mtcars" "chickwts" "quakes"
Ако радни лист садржи много листова, лако је одабрати одређени лист помоћу аргумената за лист. Можемо одредити име листа или индекс листа. Можемо да проверимо да ли обе функције враћају исти излаз са идентичним ().
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 начина
- Користите аргумент н_мак да бисте вратили н редова
- Користите аргумент опсега у комбинацији са целл_ровс или целл_цолс
На пример, поставили смо н_мак једнако 5 за увоз првих пет редова.
# Read the first five row: with headeriris <-read_excel(example, n_max =5, col_names =TRUE)
Ако променимо цол_намес у ФАЛСЕ, Р аутоматски креира заглавља.
# Read the first five row: without headeriris_no_header <-read_excel(example, n_max =5, col_names =FALSE)
ирис_но_хеадер
У оквиру података ирис_но_хеадер, Р је креирао пет нових променљивих под називом Кс__1, Кс__2, Кс__3, Кс__4 и Кс__5
Такође можемо да користимо опсег аргумената за одабир редова и колона у табели. У доњем коду користимо стил екцел за одабир опсега од А1 до Б5.
# Read rows A1 to B5example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE)dim(example_1)
Излаз:
## [1] 4 2
Видимо да екампле_1 враћа 4 реда са 2 колоне. Скуп података има заглавље из разлога што је димензија 4к2.
У другом примеру користимо функцију целл_ровс () која контролише опсег редова које треба вратити. Ако желимо да увозимо редове од 1 до 5, можемо поставити ћелијске стрелице (1: 5). Имајте на уму да, целл_ровс (1: 5) враћа исти излаз као целл_ровс (5: 1).
# Read rows 1 to 5example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE)dim(example_2)
Излаз:
## [1] 4 5
Пример_2 је, међутим, матрица 4к5. Скуп података о ирису има 5 колона са заглављем. Враћамо прва четири реда са заглављем свих колона
У случају да желимо да увозимо редове који не почињу у првом реду, морамо да укључимо цол_намес = ФАЛСЕ. Ако користимо ранге = целл_ровс (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)
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)
Излаз:
## [1] 150 2
Напомена: ранге = целл_цолс ("А: Б"), враћа излаз свих ћелија са не-нулл вредношћу. Скуп података садржи 150 редова, стога реад_екцел () враћа редове до 150. То се проверава функцијом дим ().
реад_екцел () враћа НА када се у ћелији појави симбол без нумеричке вредности. Број изосталих вредности можемо избројати комбинацијом две функције
- сума
- је.на
Ево шифре
iris_na <-read_excel(example, na ="setosa")sum(is.na(iris_na))
Излаз:
## [1] 50
Недостаје нам 50 вредности, а то су редови који припадају врсти сетоса.
Увоз података из другог статистичког софтвера
Увешћемо различите формате датотека са пакетом хеавен. Овај пакет подржава софтвере САС, СТАТА и СПСС. Следећу функцију можемо користити за отварање различитих типова скупова података, у складу са наставком датотеке:
- САС: реад_сас ()
- СТАТА: реад_дта () (или реад_стата (), који су идентични)
- СПСС: реад_сав () или реад_пор (). Морамо да проверимо продужетак
Унутар ове функције потребан је само један аргумент. Морамо знати ПУТ где се датотека чува. То је то, спремни смо да отворимо све датотеке са САС, СТАТА и СПСС. Ове три функције прихватају и УРЛ.
library(haven)
уточиште долази са цонда р-битно, у супротном идите на везу или у терминалу цонда инсталл -ц цонда-форге р-хавен
Читај сас
За наш пример, користићемо пријемни скуп података из ИДРЕ-а.
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#### 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
Прочитајте СТАТА
За СТАТА датотеке података можете користити реад_дта (). Користимо потпуно исти скуп података, али чувамо у .дта датотеци.
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#### 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
Прочитајте СПСС
Функцију реад_сав () користимо за отварање СПСС датотеке. Екстензија датотеке ".сав"
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#### 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
Најбоље праксе за увоз података
Када желимо да увозимо податке у Р, корисно је применити следећу контролну листу. Олакшаће вам тачан увоз података у Р:
- Типични формат прорачунске табеле је да се први редови користе као заглавље (обично име променљивих).
- Избегавајте да именујете скуп података празним размацима; може довести до тумачења као посебне променљиве. Алтернативно, радије користите '_' или '-.'
- Пожељна су кратка имена
- Не уврштавајте симбол у име: тј: рате_рате _ $ _ € није тачан. Радије га именујте: екцханге_рате_доллар_еуро
- У супротном користите НА за вредности које недостају; морамо касније очистити формат.
Резиме
Следећа табела резимира функцију која се користи за увоз различитих типова датотека у Р. У колони се наводи библиотека која се односи на функцију. Последња колона односи се на подразумевани аргумент.
Библиотека |
објективан |
Функција |
Подразумевани аргументи |
---|---|---|---|
утилс |
Прочитајте ЦСВ датотеку |
реад.цсв () |
датотека, заглавље =, ИСТИНА, сеп = "," |
реадкл |
Прочитајте ЕКСЦЕЛ датотеку |
реад_екцел () |
путања, опсег = НУЛЛ, цол_намес = ТРУЕ |
уточиште |
Прочитајте САС датотеку |
реад_сас () |
пут |
уточиште |
Прочитајте СТАТА датотеку |
реад_стата () |
пут |
уточиште |
Прочитајте СПСС филе |
реад_сав () |
пут |
Следећа табела приказује различите начине увоза избора са функцијом реад_екцел ().
Функција |
Циљеви |
Аргументи |
---|---|---|
реад_екцел () |
Прочитати н броја редова |
н_мак = 10 |
Изаберите редове и колоне као у Екцелу |
ранге = "А1: Д10" |
|
Изаберите редове са индексима |
опсег = ћелијске стрелице (1: 3) |
|
Изаберите колоне са словима |
опсег = ћелијске_колије ("А: Ц") |