R Seç (), Filtre (), Düzenle (), Örnek ile Boru Hattı

İçindekiler:

Anonim

Bu eğitimde öğreneceksiniz

  • seç ()
  • Filtrele ()
  • Boru hattı
  • düzenlemek ()

Dplyr adlı kitaplık, veri kümesinin içinde gezinmek için değerli fiiller içerir. Bu eğitim aracılığıyla Seyahat süreleri veri kümesini kullanacaksınız. Veri kümesi, bir sürücünün evi ile işyeri arasındaki yolculuk yollarına ilişkin bilgileri toplar. Veri kümesinde aşağıdakiler dahil on dört değişken vardır:

  • DayOfWeek: Sürücünün arabasını kullandığı haftanın gününü belirleyin
  • Mesafe: Yolculuğun toplam mesafesi
  • MaxSpeed: Yolculuğun maksimum hızı
  • TotalTime: Yolculuğun dakika cinsinden uzunluğu

Veri setinin veri setinde yaklaşık 200 gözlem var ve geziler Pazartesi'den Cuma'ya kadar gerçekleşti.

Her şeyden önce yapmanız gerekenler:

  • veri kümesini yükle
  • verilerin yapısını kontrol edin.

Dplyr ile kullanışlı bir özellik, glimpse () işlevidir. Bu, str () üzerinde bir gelişmedir. Veri kümesinin yapısını görmek ve hangi manipülasyonun gerekli olduğuna karar vermek için glimpse () kullanabiliriz.

library(dplyr)PATH <- "https://raw.githubusercontent.com/guru99-edu/R-Programming/master/travel_times.csv"df <- read.csv(PATH)glimpse(df)

Çıktı:

## Observations: 205## Variables: 14## $ X  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,… ## $ Date  1/6/2012, 1/6/2012, 1/4/2012, 1/4/2012, 1/3/20… ## $ StartTime  16:37, 08:20, 16:17, 07:53, 18:57, 07:57, 17:3… ## $ DayOfWeek  Friday, Friday, Wednesday, Wednesday, Tuesday,… ## $ GoingTo  Home, GSK, Home, GSK, Home, GSK, Home, GSK, GS… ## $ Distance  51.29, 51.63, 51.27, 49.17, 51.15, 51.80, 51.37… ## $ MaxSpeed  127.4, 130.3, 127.4, 132.3, 136.2, 135.8, 123.2… ## $ AvgSpeed  78.3, 81.8, 82.0, 74.2, 83.4, 84.5, 82.9, 77.5,… ## $ AvgMovingSpeed  84.8, 88.9, 85.8, 82.9, 88.1, 88.8, 87.3, 85.9,… ## $ FuelEconomy  , , , , , , -, -, 8.89, 8.89, 8.89, 8.89, 8.89… ## $ TotalTime  39.3, 37.9, 37.5, 39.8, 36.8, 36.8, 37.2, 37.9,… ## $ MovingTime  36.3, 34.9, 35.9, 35.6, 34.8, 35.0, 35.3, 34.3,… ## $ Take407All  No, No, No, No, No, No, No, No, No, No, No, No… ## $ Comments  , , , , , , , , , , , , , , , Put snow tires o… 

Açıktır ki, Yorumlar değişkeninin daha fazla tanılamaya ihtiyacı vardır. Yorumlar değişkeninin ilk gözlemleri yalnızca eksik değerlerdir.

sum(df$Comments =)

Kod Açıklama

  • sum (df $ Comments == ""): df'deki sütun açıklamalarındaki gözlemleri "" değerine eşit olarak toplayın

Çıktı:

## [1] 181 

seç ()

Select () fiiliyle başlayacağız. Mutlaka tüm değişkenlere ihtiyacımız yoktur ve iyi bir uygulama, yalnızca alakalı bulduğunuz değişkenleri seçmektir.

Veri kümesinin neredeyse yüzde 90'ı olan 181 eksik gözlemimiz var. Bunları dışlamaya karar verirseniz, analize devam edemezsiniz.

Diğer olasılık, açıklama değişkenini select () fiili ile bırakmaktır.

Select () ile değişkenleri farklı şekillerde seçebiliriz. İlk argümanın veri kümesi olduğunu unutmayın.

- `select(df, A, B ,C)`: Select the variables A, B and C from df dataset.- `select(df, A:C)`: Select all variables from A to C from df dataset.- `select(df, -C)`: Exclude C from the dataset from df dataset.

Yorumlar değişkenini hariç tutmak için üçüncü yolu kullanabilirsiniz.

step_1_df <- select(df, -Comments)dim(df)

Çıktı:

## [1] 205 14
dim(step_1_df)

Çıktı:

## [1] 205 13 

Orijinal veri kümesinde 14 özellik varken step_1_df'de 13 özellik bulunur.

Filtrele ()

Filter () fiili, gözlemlerin bir ölçütü takip etmesine yardımcı olur. Filter () tam olarak select () gibi çalışır, önce veri çerçevesini ve ardından virgülle ayrılmış bir koşulu iletirsiniz:

filter(df, condition)arguments:- df: dataset used to filter the data- condition: Condition used to filter the data

Bir kriter

Her şeyden önce, bir faktör değişkeninin her seviyesindeki gözlemlerin sayısını sayabilirsiniz.

table(step_1_df$GoingTo)

Kod Açıklama

  • table (): Düzeye göre gözlem sayısını sayın. Not, sadece faktör seviyesi değişkenleri kabul edilir
  • tablo (step_1_df $ GoingTo): Son hedefe doğru yolculukların sayısını sayın.

Çıktı:

#### GSK Home## 105 100

İşlev tablosu () 105 sürüşün GSK'ya ve 100 kişinin Eve gideceğini gösterir.

Bir veri kümesini 105 gözlem ve diğerini 100 gözlemle döndürecek şekilde verileri filtreleyebiliriz.

# Select observationsif GoingTo == Homeselect_home <- filter(df, GoingTo == "Home")dim(select_home)

Çıktı:

## [1] 100 14
# Select observationsif GoingTo == Workselect_work <- filter(df, GoingTo == "GSK")dim(select_work)

Çıktı:

## [1] 105 14 

Birden çok kriter

Bir veri setini birden fazla kriterle filtreleyebiliriz. Örneğin, varış yerinin Ev olduğu ve Çarşamba günü meydana geldiği gözlemleri çıkartabilirsiniz.

select_home_wed <- filter(df, GoingTo == "Home" & DayOfWeek == "Wednesday")dim(select_home_wed)

Çıktı:

## [1] 23 14 

23 gözlem bu kritere uymaktadır.

Boru hattı

Bir veri kümesinin oluşturulması, aşağıdakiler gibi birçok işlem gerektirir:

  • ithal
  • birleştirme
  • seçme
  • süzme
  • ve bunun gibi

Dplyr kütüphanesi adı verilen pratik operatörü,%>% ile gelir boru hattı . Ardışık düzen özelliği, manipülasyonu temiz, hızlı ve daha az hata anında yapar.

Bu operatör, ara adımları sabit sürücüye kaydetmeden adımları gerçekleştiren bir koddur. Yukarıdaki örneğimize geri dönerseniz, ilgilendiğiniz değişkenleri seçebilir ve filtreleyebilirsiniz. Üç adımımız var:

  • Adım 1: Verileri içe aktarın: GPS verilerini içe aktarın
  • Adım 2: Verileri seçin: GoingTo ve DayOfWeek'i seçin
  • 3. Adım: Verileri filtreleyin: Yalnızca Ana Sayfaya ve Çarşamba'ya dönün

Bunu yapmak için zor yolu kullanabiliriz:

# Step 1step_1 <- read.csv(PATH)# Step 2step_2 <- select(step_1, GoingTo, DayOfWeek)# Step 3step_3 <- filter(step_2, GoingTo == "Home", DayOfWeek == "Wednesday")head(step_3)

Çıktı:

## GoingTo DayOfWeek## 1 Home Wednesday## 2 Home Wednesday## 3 Home Wednesday## 4 Home Wednesday## 5 Home Wednesday## 6 Home Wednesday

Bu, özellikle çok sayıda adımın olduğu bir durumda birçok işlemi gerçekleştirmenin uygun bir yolu değildir. Ortam, depolanan birçok nesne ile sonuçlanır.

Onun yerine%>% ardışık düzen operatörünü kullanalım. Sadece başlangıçta kullanılan veri çerçevesini tanımlamamız gerekiyor ve tüm süreç ondan akacak.

İşlem hattının temel sözdizimi

New_df <- df %>%step 1 %>%step 2 %>%… arguments- New_df: Name of the new data frame- df: Data frame used to compute the step- step: Instruction for each step- Note: The last instruction does not need the pipe operator `%`, you don't have instructions to pipe anymoreNote: Create a new variable is optional. If not included, the output will be displayed in the console.

Yukarıda sıralanan adımları izleyerek ilk borunuzu oluşturabilirsiniz.

# Create the data frame filter_home_wed.It will be the object return at the end of the pipelinefilter_home_wed <-#Step 1read.csv(PATH) % > %#Step 2select(GoingTo, DayOfWeek) % > %#Step 3filter(GoingTo == "Home",DayOfWeek == "Wednesday")identical(step_3, filter_home_wed)

Çıktı:

## [1] TRUE 

Boru hattı operatörüyle çarpıcı bir veri kümesi oluşturmaya hazırız.

düzenlemek ()

Önceki öğreticide, sort () işleviyle değerleri nasıl sıralayacağınızı öğreneceksiniz. Kütüphane dplyr'in sıralama işlevi vardır. Boru hattı ile bir cazibe gibi çalışıyor. Düzenlemek () fiili, artan (varsayılan) veya azalan olmak üzere bir veya daha fazla satırı yeniden sıralayabilir.

- `arrange(A)`: Ascending sort of variable A- `arrange(A, B)`: Ascending sort of variable A and B- `arrange(desc(A), B)`: Descending sort of variable A and ascending sort of B 

Mesafeyi hedefe göre sıralayabiliriz.

# Sort by destination and distancestep_2_df <-step_1_df %>%arrange(GoingTo, Distance)head

Çıktı:

## X Date StartTime DayOfWeek GoingTo Distance MaxSpeed AvgSpeed## 1 193 7/25/2011 08:06 Monday GSK 48.32 121.2 63.4## 2 196 7/21/2011 07:59 Thursday GSK 48.35 129.3 81.5## 3 198 7/20/2011 08:24 Wednesday GSK 48.50 125.8 75.7## 4 189 7/27/2011 08:15 Wednesday GSK 48.82 124.5 70.4## 5 95 10/11/2011 08:25 Tuesday GSK 48.94 130.8 85.7## 6 171 8/10/2011 08:13 Wednesday GSK 48.98 124.8 72.8## AvgMovingSpeed FuelEconomy TotalTime MovingTime Take407All## 1 78.4 8.45 45.7 37.0 No## 2 89.0 8.28 35.6 32.6 Yes## 3 87.3 7.89 38.5 33.3 Yes## 4 77.8 8.45 41.6 37.6 No## 5 93.2 7.81 34.3 31.5 Yes## 6 78.8 8.54 40.4 37.3 No

Özet

Aşağıdaki tabloda, eğitim sırasında öğrendiğiniz tüm işlemleri özetleyeceksiniz.

Fiil Amaç Kod Açıklama
bakış bir df'nin yapısını kontrol edin
glimpse(df)
Str () ile Özdeş
seç () Değişkenleri seçin / hariç tutun
select(df, A, B ,C)
A, B ve C değişkenlerini seçin
select(df, A:C)
A'dan C'ye tüm değişkenleri seçin
select(df, -C)
C'yi hariç tut
filtre () Df'yi bir veya daha fazla koşula göre filtreleyin
filter(df, condition1)
Tek koşul
filter(df, condition1
ondition2)
düzenlemek () Veri kümesini bir veya daha fazla değişkenle sıralayın
arrange(A)
Artan çeşit A değişkeni
arrange(A, B)
Artan çeşit A ve B değişkeni
arrange(desc(A), B)
Azalan tür A değişkeni ve artan tür B
%>% Her adım arasında bir ardışık düzen oluşturun
step 1 %>% step 2 %>% step 3