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.

Readxl_Example

Clippy.xls adlı e-tablonun konumunu kontrol etmek için basit kullanımı

readxl_example("geometry.xls")

Readxl_Example

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

  1. N satır döndürmek için n_max argümanını kullanın
  2. 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)

Excel_Sheets

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

Excel_Sheets

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.

Excel_Sheets

İ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

Excel_Sheets

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

Excel_Sheets

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

  1. toplam
  2. 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”)