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.
Aby sprawdzić lokalizację arkusza kalkulacyjnego o nazwie Clippy.xls, wystarczy proste użycie
readxl_example("geometry.xls")
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
- Użyj argumentu n_max, aby zwrócić n wierszy
- 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)
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
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.
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
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)
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
- suma
- 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”) |







