Importuj dane w R: czytaj pliki CSV, Excel, SPSS, Stata, SAS

Dane mogą występować w różnych formatach. Dla każdego formatu R ma określoną funkcję i argument. W tym samouczku wyjaśniono, jak importować dane do R.

Przeczytaj CSV

Jednym z najpowszechniejszych magazynów danych są formaty plików .csv (wartości rozdzielane przecinkami). R ładuje tablicę bibliotek podczas uruchamiania, w tym pakiet utils. Pakiet ten umożliwia wygodne otwieranie plików csv w połączeniu z funkcją read.csv(). Oto składnia read.csv

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

Argument:

  • filet: ŚCIEŻKA, w której przechowywany jest plik
  • nagłówek: potwierdź, czy plik ma nagłówek, czy nie, domyślnie nagłówek jest ustawiony na TRUE
  • września: symbol używany do podziału zmiennej. Domyślnie `,`.

Odczytamy nazwę pliku danych mtcats. Plik CSV jest przechowywany online. Jeśli plik .csv jest przechowywany lokalnie, możesz zastąpić PATH wewnątrz fragmentu kodu. Nie zapomnij zawinąć go do środka. PATH musi być wartością typu string.

W przypadku użytkowników komputerów Mac ścieżka do folderu pobierania to:

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

Dla użytkowników systemu Windows:

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

Pamiętaj, że zawsze powinniśmy określić rozszerzenie nazwy pliku.

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

Wydajność

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

Wydajność

## [1] "factor"

R domyślnie zwraca wartości znaków jako współczynnik. Możemy wyłączyć to ustawienie, dodając 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)

Wydajność

## [1] "character"

Klasa zmiennej X jest teraz znakiem.

Czytaj pliki Excela

przewyższać pliki są bardzo popularne wśród analityków danych. Arkusze kalkulacyjne są łatwe w obsłudze i elastyczne. R jest wyposażony w bibliotekę readxl do importowania arkusza kalkulacyjnego Excel.

Użyj tego kodu

require(readxl)

aby sprawdzić, czy na twoim komputerze jest zainstalowany readxl. Jeśli zainstalujesz r z r-conda-essential, biblioteka jest już zainstalowana. Powinieneś zobaczyć w oknie poleceń:

Wydajność

Loading required package: readxl.

Jeśli pakiet nie zostanie zamknięty, możesz go zainstalować za pomocą conda biblioteka lub w terminalu użyj conda install -c mittner r-readxl.

Użyj następującego polecenia, aby załadować bibliotekę i zaimportować pliki Excela.

library(readxl)

readxl_example()

W tym samouczku korzystamy z przykładów zawartych w pakiecie readxl.

Użyć kodu

readxl_example()

aby zobaczyć wszystkie dostępne arkusze kalkulacyjne w bibliotece.

Przeczytajxl_Przykład

Aby sprawdzić lokalizację arkusza kalkulacyjnego o nazwie Clippy.xls, wystarczy proste użycie

readxl_example("geometry.xls")

Przeczytajxl_Przykład

Jeśli zainstalujesz R z Condą, arkusze kalkulacyjne znajdują się w Anaconda3/lib/R/library/readxl/extdata/filename.xls

czytaj_Excel()

Funkcja read_excel() jest bardzo przydatna, jeśli chodzi o otwieranie rozszerzeń xls i xlsx.

Składnia jest następująca:

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

Możemy zaimportować arkusze kalkulacyjne z biblioteki readxl i policzyć liczbę kolumn w pierwszym arkuszu.

# 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)

Wydajność

## [1] 5

arkusze_Excel()

Plik datasets.xlsx składa się z 4 arkuszy. Jakie arkusze są dostępne w skoroszycie, możemy dowiedzieć się, korzystając z funkcji Excel_sheets().

example <- readxl_example("datasets.xlsx")

excel_sheets(example)

Wydajność

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

Jeśli arkusz zawiera wiele arkuszy, można łatwo wybrać konkretny arkusz za pomocą argumentów arkusza. Możemy podać nazwę arkusza lub indeks arkusza. Możemy sprawdzić, czy obie funkcje zwracają ten sam wynik za pomocą metody identycznej().

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

Wydajność

## [1] TRUE

Możemy kontrolować, które komórki czytać, na 2 sposoby

  1. Użyj argumentu n_max, aby zwrócić n wierszy
  2. Użyj argumentu zakresu w połączeniu z cell_rows lub cell_cols

Na przykład ustawiamy n_max równe 5, aby zaimportować pierwsze pięć wierszy.

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

Arkusze_Excel

Jeśli zmienimy nazwy_kolumn na FALSE, R automatycznie utworzy nagłówki.

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

iris_no_header

W ramce danych iris_no_header R utworzył pięć nowych zmiennych o nazwach X__1, X__2, X__3, X__4 i X__5

Arkusze_Excel

Zakresu argumentów możemy także używać do wybierania wierszy i kolumn w arkuszu kalkulacyjnym. W poniższym kodzie używamy stylu Excela, aby wybrać zakres od A1 do B5.

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

Wydajność

## [1] 4 2

Widzimy, że przykład_1 zwraca 4 wiersze z 2 kolumnami. Zbiór danych ma nagłówek, dlatego wymiar wynosi 4×2.

Arkusze_Excel

W drugim przykładzie używamy funkcji cell_rows(), która kontroluje zakres zwracanych wierszy. Jeśli chcemy zaimportować wiersze od 1 do 5, możemy ustawić cell_rows(1:5). Zauważ, że cell_rows(1:5) zwraca ten sam wynik co 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)

Wydajność

## [1] 4 5

Jednakże przykład_2 to macierz 4×5. Zbiór danych iris ma 5 kolumn z nagłówkiem. Zwracamy pierwsze cztery wiersze z nagłówkami wszystkich kolumn

Arkusze_Excel

W przypadku, gdy chcemy zaimportować wiersze, które nie zaczynają się od pierwszego wiersza, musimy uwzględnić col_names = FALSE. Jeśli użyjemy zakresu = cell_rows(2:5), stanie się oczywiste, że nasza ramka danych nie ma już nagłówka.

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)

Arkusze_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)

Wydajność

## [1] 150   2

Uwaga: zakres = cell_cols(„A:B”), zwraca wszystkie komórki z wartością inną niż null. Zbiór danych zawiera 150 wierszy, dlatego funkcja read_excel() zwraca maksymalnie 150 wierszy. Sprawdza się to za pomocą funkcji dim().

read_excel() zwraca NA, gdy w komórce pojawia się symbol bez wartości liczbowej. Liczbę brakujących wartości możemy policzyć za pomocą kombinacji dwóch funkcji

  1. suma
  2. jest.na

Oto kod

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

Wydajność

## [1] 50

Brakuje nam 50 wartości, które są wierszami należącymi do gatunku setosa.

Importuj dane z innego oprogramowania statystycznego

Zaimportujemy inny format plików z pakietem Heaven. Wsparcie tego pakietu SAS, oprogramowania STATA i SPSS. Możemy użyć następującej funkcji, aby otworzyć różne typy zestawów danych, zgodnie z rozszerzeniem pliku:

  • SAS: read_sas()
  • STATA: read_dta() (lub read_stata(), które są identyczne)
  • SPSS: read_sav() lub read_por(). Musimy sprawdzić rozszerzenie

W obrębie tych funkcji wymagany jest tylko jeden argument. Musimy znać ŚCIEŻKĘ, w ​​której przechowywany jest plik. To wszystko, jesteśmy gotowi otworzyć wszystkie pliki z SAS, STATA i SPSS. Te trzy funkcje akceptują również adres URL.

library(haven)

haven jest wyposażony w conda r-essential, w przeciwnym razie przejdź do link lub w terminalu conda install -c conda-forge r-haven

Przeczytaj sas

W naszym przykładzie użyjemy zestawu danych dotyczących przyjęć z IDRE.

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

Wydajność

## # 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

Przeczytaj STATĘ

W przypadku plików danych STATA możesz użyć funkcji read_dta(). Używamy dokładnie tego samego zbioru danych, ale przechowujemy je w pliku .dta.

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

Wydajność

## # 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

Przeczytaj SPSS

Do otwarcia pliku SPSS używamy funkcji read_sav(). Rozszerzenie pliku „.sav”

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

Wydajność

## # 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

Najlepsze praktyki dotyczące importu danych

Kiedy chcemy zaimportować dane do R, przydatne jest wdrożenie poniższej listy kontrolnej. Ułatwi ona prawidłowy import danych do R:

  • Typowym formatem arkusza kalkulacyjnego jest użycie pierwszych wierszy jako nagłówka (zwykle nazwy zmiennej).
  • Unikaj nazywania zbioru danych pustymi spacjami; może to prowadzić do interpretacji jako osobnej zmiennej. Alternatywnie możesz użyć „_” lub „-”.
  • Preferowane są krótkie nazwy
  • Nie umieszczaj w nazwie symbolu: np.: kurs_wymiany_$_€ jest niepoprawny. Wolę nazwać to: kurs_wymiany_dolara_euro
  • W przeciwnym wypadku w przypadku wartości brakujących należy wpisać NA; później będziemy musieli wyczyścić format.

Podsumowanie

Poniższa tabela podsumowuje funkcję, której należy użyć, aby zaimportować różne typy plików w R. Kolumna pierwsza określa bibliotekę powiązaną z funkcją. Ostatnia kolumna odnosi się do domyślnego argumentu.

Biblioteka Cel Funkcjonować Argumenty domyślne
utils Przeczytaj plik CSV czytaj.csv() plik, nagłówek =,TRUE, wrz = „,”
czytajxl Przeczytaj plik EXCEL czytaj_Excel() ścieżka, zakres = NULL, nazwy_kolumn = PRAWDA
przystań Przeczytaj plik SAS czytaj_sas() ścieżka
przystań Przeczytaj plik STATA read_stata() ścieżka
przystań Przeczytaj plik SPSS czytaj_zapisz() ścieżka

Poniższa tabela przedstawia różne sposoby importowania zaznaczenia za pomocą funkcji read_excel().

Funkcjonować Cel Argumenty
czytaj_Excel() Przeczytaj n liczby wierszy n_maks. = 10
Wybierz wiersze i kolumny jak w programie Excel zakres = „A1:D10”
Wybierz wiersze z indeksami zakres= wiersze_komórek(1:3)
Wybierz kolumny z literami zakres = cell_cols(“A:C”)

Podsumuj ten post następująco: