चयन करें (), फ़िल्टर (), व्यवस्था (), उदाहरण के साथ पाइपलाइन

विषय - सूची:

Anonim

इस ट्यूटोरियल में, आप सीखेंगे

  • चुनते हैं()
  • फ़िल्टर ()
  • पाइपलाइन
  • व्यवस्थित करें ()

Dplyr नामक लाइब्रेरी में डेटासेट के अंदर नेविगेट करने के लिए मूल्यवान क्रियाएं होती हैं। इस ट्यूटोरियल के माध्यम से, आप ट्रैवल टाइम डेटासेट का उपयोग करेंगे। डेटासेट यात्रा के बारे में जानकारी एक ड्राइवर द्वारा उसके घर और उसके कार्यस्थल के बीच एकत्र करता है। डेटासेट में चौदह चर हैं, जिनमें शामिल हैं:

  • DayOfWeek: सप्ताह के दिन को पहचानें कि ड्राइवर अपनी कार का उपयोग करता है
  • दूरी: यात्रा की कुल दूरी
  • मैक्सस्पीड: यात्रा की अधिकतम गति
  • TotalTime: यात्रा के मिनटों में लंबाई

डेटासेट में डेटासेट के लगभग 200 अवलोकन होते हैं, और सोमवार से शुक्रवार के बीच सवारी होती है।

सबसे पहले, आपको निम्न करने की आवश्यकता है:

  • डेटासेट लोड करें
  • डेटा की संरचना की जाँच करें।

Dplyr के साथ एक आसान विशेषता झलक () फ़ंक्शन है। यह str () पर सुधार है। हम डेटासेट की संरचना को देखने के लिए झलक () का उपयोग कर सकते हैं और तय कर सकते हैं कि क्या हेरफेर की आवश्यकता है।

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

आउटपुट:

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

यह स्पष्ट है कि चर टिप्पणियों को आगे निदान की आवश्यकता है। टिप्पणियाँ चर के पहले अवलोकन केवल लापता मान हैं।

sum(df$Comments =)

कोड स्पष्टीकरण

  • योग (डीएफ $ टिप्पणियाँ == ""): योग डीएफ से कॉलम टिप्पणियों में "" के बराबर है

आउटपुट:

## [1] 181 

चुनते हैं()

हम चयन () क्रिया के साथ शुरू करेंगे। हम सभी चर की आवश्यकता नहीं है, और एक अच्छा अभ्यास केवल उन चरों का चयन करना है जो आप प्रासंगिक पाते हैं।

हमारे पास 181 लापता अवलोकन हैं, लगभग 90 प्रतिशत डेटासेट हैं। यदि आप उन्हें बाहर करने का निर्णय लेते हैं, तो आप विश्लेषण नहीं कर पाएंगे।

अन्य संभावना चुनिंदा () क्रिया के साथ चर टिप्पणी को छोड़ने की है।

हम चुनिंदा () के साथ विभिन्न तरीकों से चर का चयन कर सकते हैं। ध्यान दें कि, पहला तर्क डेटासेट है।

- `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.

आप टिप्पणियाँ चर को बाहर करने के लिए तीसरे तरीके का उपयोग कर सकते हैं।

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

आउटपुट:

## [1] 205 14
dim(step_1_df)

आउटपुट:

## [1] 205 13 

मूल डेटासेट में 14 विशेषताएं हैं जबकि step_1_df में 13 हैं।

फ़िल्टर ()

फ़िल्टर () क्रिया एक मापदंड के बाद टिप्पणियों को रखने में मदद करती है। फ़िल्टर () ठीक सेलेक्ट की तरह काम करता है (), आप पहले डेटा फ्रेम पास करते हैं और फिर अल्पविराम द्वारा अलग की गई स्थिति:

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

एक मापदंड

सबसे पहले, आप कारक चर के प्रत्येक स्तर के भीतर टिप्पणियों की संख्या की गणना कर सकते हैं।

table(step_1_df$GoingTo)

कोड स्पष्टीकरण

  • तालिका (): स्तर द्वारा टिप्पणियों की संख्या की गणना करें। ध्यान दें, केवल कारक स्तर चर स्वीकार किए जाते हैं
  • तालिका (step_1_df $ GoingTo): अंतिम गंतव्य की ओर यात्राओं की संख्या गिनें।

आउटपुट:

#### GSK Home## 105 100

फ़ंक्शन तालिका () इंगित करती है कि 105 सवारी जीएसके और 100 घर जा रही हैं।

हम एक डेटासेट को 105 अवलोकनों के साथ और 100 अवलोकनों के साथ दूसरे को वापस करने के लिए डेटा फ़िल्टर कर सकते हैं।

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

आउटपुट:

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

आउटपुट:

## [1] 105 14 

कई कसौटी

हम एक से अधिक मानदंड से डेटासेट फ़िल्टर कर सकते हैं। उदाहरण के लिए, आप उन टिप्पणियों को निकाल सकते हैं जहाँ गंतव्य घर है और बुधवार को हुआ।

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

आउटपुट:

## [1] 23 14 

23 टिप्पणियों ने इस कसौटी का मिलान किया।

पाइपलाइन

डेटासेट के निर्माण के लिए बहुत सारे संचालन की आवश्यकता होती है, जैसे:

  • आयात करने
  • विलय
  • चयन
  • छानने
  • और इसी तरह

Dplyr पुस्तकालय एक व्यावहारिक ऑपरेटर,%>% के साथ आता है, जिसे पाइपलाइन कहा जाता है । पाइपलाइन सुविधा हेरफेर को स्वच्छ, तेज और त्रुटि के लिए कम संकेत देती है।

यह ऑपरेटर एक कोड है जो हार्ड ड्राइव में मध्यवर्ती चरणों को सहेजे बिना कदमों का प्रदर्शन करता है। यदि आप ऊपर से हमारे उदाहरण पर वापस आते हैं, तो आप ब्याज के चर का चयन कर सकते हैं और उन्हें फ़िल्टर कर सकते हैं। हमारे पास तीन चरण हैं:

  • चरण 1: डेटा आयात करें: जीपीएस डेटा आयात करें
  • चरण 2: डेटा का चयन करें: GoingTo और DayOfWeek का चयन करें
  • चरण 3: डेटा फ़िल्टर करें: केवल घर और बुधवार को लौटें

हम इसे करने के लिए कठिन तरीके का उपयोग कर सकते हैं:

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

आउटपुट:

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

यह कई ऑपरेशन करने के लिए एक सुविधाजनक तरीका नहीं है, विशेष रूप से कई चरणों के साथ एक स्थिति में। पर्यावरण बहुत सारी वस्तुओं के साथ समाप्त हो जाता है।

इसके बजाय पाइपलाइन ऑपरेटर%>% का उपयोग करें। हमें केवल शुरुआत में उपयोग किए जाने वाले डेटा फ्रेम को परिभाषित करने की आवश्यकता है और सभी प्रक्रिया इससे प्रवाहित होगी।

पाइपलाइन का मूल सिंटैक्स

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.

ऊपर दिए गए चरणों का पालन करके आप अपना पहला पाइप बना सकते हैं।

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

आउटपुट:

## [1] TRUE 

हम पाइपलाइन ऑपरेटर के साथ एक आश्चर्यजनक डेटासेट बनाने के लिए तैयार हैं।

व्यवस्थित करें ()

पिछले ट्यूटोरियल में, आप सीखते हैं कि फंक्शन सॉर्ट () के साथ वैल्यूज़ को कैसे सॉर्ट करना है। लायब्रेरी drear का अपना छँटाई कार्य है। यह पाइपलाइन के साथ एक आकर्षण की तरह काम करता है। व्यवस्था () क्रिया एक या कई पंक्तियों को पुन: क्रमित कर सकती है, या तो आरोही (डिफ़ॉल्ट) या अवरोही।

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

हम दूरी को गंतव्य के अनुसार क्रमबद्ध कर सकते हैं।

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

आउटपुट:

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

सारांश

नीचे दी गई तालिका में, आप ट्यूटोरियल के दौरान आपके द्वारा सीखे गए सभी कार्यों को संक्षेप में प्रस्तुत करते हैं।

क्रिया उद्देश्य कोड व्याख्या
झलक एक df की संरचना की जाँच करें
glimpse(df)
Str के लिए समान ()
चुनते हैं() चरों को चुनें / बहिष्कृत करें
select(df, A, B ,C)
चर ए, बी और सी का चयन करें
select(df, A:C)
A से C तक सभी वेरिएबल्स का चयन करें
select(df, -C)
सी को छोड़ दें
फ़िल्टर () एक या कई स्थितियों के आधार पर df फ़िल्टर करें
filter(df, condition1)
एक शर्त
filter(df, condition1
ondition2)
व्यवस्थित करें () एक या कई चरों के साथ डेटासेट को सॉर्ट करें
arrange(A)
चर ए का आरोही प्रकार
arrange(A, B)
चर ए और बी के बढ़ते प्रकार
arrange(desc(A), B)
चर ए का अवरोही प्रकार और बी का आरोही प्रकार
%>% प्रत्येक चरण के बीच एक पाइपलाइन बनाएं
step 1 %>% step 2 %>% step 3