Verileri R'ye İçe Aktarın: CSV, Excel, SPSS, Stata, SAS Dosyalarını Okuyun
Veriler çeşitli formatlarda mevcut olabilir. Her format için R belirli bir işlevi ve argümanı vardır. Bu eğitimde verilerin R'ye nasıl aktarılacağı açıklanmaktadır.
CSV'yi okuyun
En yaygın veri depolarından biri .csv (virgülle ayrılmış değerler) dosya biçimleridir. R, başlangıç sırasında utils paketi de dahil olmak üzere bir dizi kitaplığı yükler. Bu paket, read.csv() işleviyle birlikte csv dosyalarını açmak için uygundur. İşte read.csv'nin sözdizimi
read.csv(file, header = TRUE, sep = ",")
Tartışma:
- dosya: Dosyanın depolandığı PATH
- başlık: dosyanın bir başlığı olup olmadığını onaylayın, varsayılan olarak başlık TRUE olarak ayarlanmıştır
- Eylül: Değişkeni bölmek için kullanılan sembol. Varsayılan olarak `,`.
Mtcats veri dosyasının adını okuyacağız. CSV dosyası çevrimiçi olarak saklanır. .csv dosyanız yerel olarak depolanıyorsa kod pasajının içindeki PATH'i değiştirebilirsiniz. '' içine sarmayı unutmayın. PATH'in bir dize değeri olması gerekir.
Mac kullanıcısı için indirme klasörünün yolu şöyledir:
"/Users/USERNAME/Downloads/FILENAME.csv"
Windows kullanıcıları için:
"C:\Users\USERNAME\Downloads\FILENAME.csv"
Her zaman dosya adının uzantısını belirtmemiz gerektiğini unutmayın.
- . Csv
- . Xlsx
- . Txt
- ...
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <- read.csv(PATH, header = TRUE, sep = ',') length(df)
Çıktı
## [1] 12
class(df$X)
Çıktı
## [1] "factor"
R, varsayılan olarak karakter değerlerini Faktör olarak döndürür. stringsAsFactors = FALSE ekleyerek bu ayarı kapatabiliriz.
PATH <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/mtcars.csv' df <-read.csv(PATH, header =TRUE, sep = ',', stringsAsFactors =FALSE) class(df$X)
Çıktı
## [1] "character"
X değişkeninin sınıfı artık bir karakterdir.
Excel dosyalarını okuyun
Excel dosyalar veri analistleri arasında oldukça popülerdir. Elektronik tablolarla çalışmak kolaydır ve esnektir. R, Excel elektronik tablosunu içe aktarmak için bir readxl kitaplığıyla donatılmıştır.
Bu kodu kullanın
require(readxl)
Makinenizde readxl'in kurulu olup olmadığını kontrol etmek için. r'yi r-conda-essential ile yüklerseniz kitaplık zaten kuruludur. Komut penceresinde şunu görmelisiniz:
Çıktı
Loading required package: readxl.
Paket çıkmıyorsa conda ile kurabilirsiniz. kütüphane veya terminalde conda install -c mittner r-readxl komutunu kullanın.
Excel dosyalarını içe aktarmak için kütüphaneyi yüklemek üzere aşağıdaki komutu kullanın.
library(readxl)
readxl_example()
Bu eğitim sırasında readxl paketindeki örnekleri kullanıyoruz.
Kodu kullanın
readxl_example()
Kitaplıktaki mevcut tüm e-tabloları görmek için.
Clippy.xls adlı e-tablonun konumunu kontrol etmek için basit kullanımı
readxl_example("geometry.xls")
R'yi conda ile yüklerseniz elektronik tablolar Anaconda3/lib/R/library/readxl/extdata/filename.xls konumunda bulunur
read_excel()
Konu xls ve xlsx uzantısını açmak olduğunda read_excel() işlevi çok kullanışlıdır.
Sözdizimi şöyledir:
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
Elektronik tabloları readxl kütüphanesinden içe aktarabilir ve ilk sayfadaki sütun sayısını sayabiliriz.
# 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)
Çıktı
## [1] 5
excel_sheets()
datasets.xlsx dosyası 4 sayfadan oluşur. Excel_sheets() fonksiyonunu kullanarak çalışma kitabında hangi sayfaların bulunduğunu öğrenebiliriz.
example <- readxl_example("datasets.xlsx") excel_sheets(example)
Çıktı
[1] "iris" "mtcars" "chickwts" "quakes"
Bir çalışma sayfası çok sayıda sayfa içeriyorsa, sayfa bağımsız değişkenlerini kullanarak belirli bir sayfayı seçmek kolaydır. Sayfanın adını veya sayfa indeksini belirtebiliriz. Her iki işlevin de aynı çıktıyı döndürüp döndürmediğini aynı() ile doğrulayabiliriz.
example <- readxl_example("datasets.xlsx") quake <- read_excel(example, sheet = "quakes") quake_1 <-read_excel(example, sheet = 4) identical(quake, quake_1)
Çıktı
## [1] TRUE
Hangi hücrelerin okunacağını 2 şekilde kontrol edebiliriz
- N satır döndürmek için n_max argümanını kullanın
- Aralık argümanını cell_rows veya cell_cols ile birlikte kullanın
Örneğin, ilk beş satırı içe aktarmak için n_max eşittir 5'i ayarladık.
# Read the first five row: with header iris <-read_excel(example, n_max =5, col_names =TRUE)
Col_names'i FALSE olarak değiştirirsek R, başlıkları otomatik olarak oluşturur.
# 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 veri çerçevesinde R, X__1, X__2, X__3, X__4 ve X__5 adlı beş yeni değişken oluşturdu
Elektronik tablodaki satırları ve sütunları seçmek için bağımsız değişken aralığını da kullanabiliriz. Aşağıdaki kodda A1 ila B5 aralığını seçmek için excel stilini kullanıyoruz.
# Read rows A1 to B5 example_1 <-read_excel(example, range = "A1:B5", col_names =TRUE) dim(example_1)
Çıktı
## [1] 4 2
example_1'in 4 sütunlu 2 satır döndürdüğünü görebiliriz. Veri kümesinin başlığı vardır, bunun nedeni boyutun 4×2 olmasıdır.
İkinci örnekte döndürülecek satır aralığını kontrol eden cell_rows() fonksiyonunu kullanıyoruz. 1'den 5'e kadar olan satırları içe aktarmak istiyorsak, cell_rows(1:5) ayarını yapabiliriz. Cell_rows(1:5) fonksiyonunun, cell_rows(5:1) ile aynı çıktıyı döndürdüğünü unutmayın.
# Read rows 1 to 5 example_2 <-read_excel(example, range =cell_rows(1:5),col_names =TRUE) dim(example_2)
Çıktı
## [1] 4 5
Ancak example_2 4×5'lik bir matristir. İris veri kümesinde başlık içeren 5 sütun bulunur. İlk dört satırı tüm sütunların başlığıyla birlikte döndürüyoruz
İlk satırda başlamayan satırları içe aktarmak istediğimizde col_names = FALSE değerini dahil etmemiz gerekir. range = cell_rows(2:5) kullanırsak, veri çerçevemizin artık başlığının olmadığı açıkça ortaya çıkar.
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)
Çıktı
## [1] 150 2
Not: range = cell_cols(“A:B”), boş olmayan değere sahip tüm hücrelerin çıktısını döndürür. Veri kümesi 150 satır içerdiğinden, read_excel() işlevi 150'ye kadar satır döndürür. Bu, dim() işleviyle doğrulanır.
read_excel(), hücrede sayısal değeri olmayan bir sembol göründüğünde NA değerini döndürür. İki fonksiyonun birleşimiyle eksik değerlerin sayısını sayabiliriz
- toplam
- is.na
İşte kod
iris_na <-read_excel(example, na ="setosa") sum(is.na(iris_na))
Çıktı
## [1] 50
Setosa türüne ait satırlar olan 50 değerimiz eksik.
Diğer İstatistik yazılımlarından verileri içe aktarın
Heaven paketi ile farklı dosya formatlarını içe aktaracağız. Bu paket desteği SAS, STATA ve SPSS yazılımları. Dosyanın uzantısına göre farklı veri seti türlerini açmak için aşağıdaki işlevi kullanabiliriz:
- SAS: read_sas()
- STATA: read_dta() (veya aynı olan read_stata())
- SPSS: read_sav() veya read_por(). Uzantıyı kontrol etmemiz gerekiyor
Bu işlevlerde yalnızca bir bağımsız değişken gereklidir. Dosyanın saklandığı PATH'i bilmemiz gerekiyor. İşte bu, SAS, STATA ve SPSS'deki tüm dosyaları açmaya hazırız. Bu üç işlev aynı zamanda bir URL'yi de kabul eder.
library(haven)
cennet conda r-essential ile birlikte gelir aksi takdirde git Link veya terminalde conda install -c conda-forge r-haven
Sas'ı oku
Örneğimiz için IDRE'nin kabul veri kümesini kullanacağız.
PATH_sas <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sas7bdat?raw=true' df <- read_sas(PATH_sas) head(df)
Çıktı
## # 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'yı oku
STATA veri dosyaları için read_dta() işlevini kullanabilirsiniz. Tamamen aynı veri kümesini kullanıyoruz ancak .dta dosyasında saklıyoruz.
PATH_stata <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.dta?raw=true' df <- read_dta(PATH_stata) head(df)
Çıktı
## # 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'i okuyun
SPSS dosyasını açmak için read_sav() fonksiyonunu kullanırız. Dosya uzantısı “.sav”
PATH_spss <- 'https://github.com/guru99-edu/R-Programming/blob/master/binary.sav?raw=true' df <- read_sav(PATH_spss) head(df)
Çıktı
## # 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
Verileri İçe Aktarmaya yönelik en iyi uygulamalar
R'ye veri aktarmak istediğimizde, aşağıdaki kontrol listesini uygulamak faydalıdır. Verileri R'ye doğru şekilde aktarmayı kolaylaştıracaktır:
- Bir elektronik tablonun tipik biçimi, ilk satırları başlık olarak kullanmaktır (genellikle değişken adı).
- Bir veri kümesini boşluklarla adlandırmaktan kaçının; ayrı bir değişken olarak yorumlanmasına yol açabilir. Alternatif olarak '_' veya '-' kullanmayı tercih edin.
- Kısa isimler tercih ediliyor
- İsme sembol eklemeyin: yani: exchange_rate_$_€ doğru değil. Adını vermeyi tercih edin: exchange_rate_dollar_euro
- Aksi takdirde eksik değerler için NA kullanın; formatı daha sonra temizlememiz gerekecek.
ÖZET
Aşağıdaki tablo, R'de farklı dosya türlerini içe aktarmak için kullanılacak işlevi özetlemektedir. Birinci sütun, işlevle ilgili kütüphaneyi belirtir. Son sütun, varsayılan argümana atıfta bulunur.
Kütüphane | Nesnel | İşlev | Varsayılan Bağımsız Değişkenler |
---|---|---|---|
utils | CSV dosyasını oku | read.csv() | dosya, başlık =,DOĞRU, sep = “,” |
okumaxl | EXCEL dosyasını oku | read_excel() | yol, aralık = NULL, sütun_adları = DOĞRU |
sığınak | SAS dosyasını oku | read_sas() | yol |
sığınak | STATA dosyasını oku | read_stata() | yol |
sığınak | SPSS dosyasını okuyun | read_sav() | yol |
Aşağıdaki tabloda read_excel() fonksiyonu ile bir seçimi içe aktarmanın farklı yolları gösterilmektedir.
İşlev | Nesnel | Argümanlar |
---|---|---|
read_excel() | N sayıda satırı oku | n_maks = 10 |
Excel'deki gibi satırları ve sütunları seçin | aralık = “A1:D10” | |
Dizinli satırları seçin | aralık=hücre_satırları(1:3) | |
Harf içeren sütunları seçin | aralık = cell_cols(“A:C”) |