R Select(), Filter(), Arrange(), Pipeline with Example

ะ‘ะธะฑะปะธะพั‚ะตะบะฐั‚ะฐ, ะฝะฐั€ะตั‡ะตะฝะฐ dplyr, ััŠะดัŠั€ะถะฐ ั†ะตะฝะฝะธ ะณะปะฐะณะพะปะธ ะทะฐ ะฝะฐะฒะธะณะฐั†ะธั ะฒ ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ. ะงั€ะตะท ั‚ะพะทะธ ัƒั€ะพะบ ั‰ะต ะธะทะฟะพะปะทะฒะฐั‚ะต ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ ะทะฐ ะฒั€ะตะผะตั‚ะพ ะทะฐ ะฟัŠั‚ัƒะฒะฐะฝะต. ะะฐะฑะพั€ัŠั‚ ะพั‚ ะดะฐะฝะฝะธ ััŠะฑะธั€ะฐ ะธะฝั„ะพั€ะผะฐั†ะธั ะทะฐ ะฟัŠั‚ัƒะฒะฐะฝะตั‚ะพ, ะฒะพะดะตะฝะพ ะพั‚ ัˆะพั„ัŒะพั€ ะผะตะถะดัƒ ะดะพะผะฐ ะผัƒ ะธ ั€ะฐะฑะพั‚ะฝะพั‚ะพ ะผัƒ ะผััั‚ะพ. ะ’ ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ ะธะผะฐ ั‡ะตั‚ะธั€ะธะฝะฐะดะตัะตั‚ ะฟั€ะพะผะตะฝะปะธะฒะธ, ะฒะบะปัŽั‡ะธั‚ะตะปะฝะพ:

  • DayOfWeek: ะžะฟั€ะตะดะตะปะตั‚ะต ะดะตะฝั ะพั‚ ัะตะดะผะธั†ะฐั‚ะฐ, ะฒ ะบะพะนั‚ะพ ัˆะพั„ัŒะพั€ัŠั‚ ะธะทะฟะพะปะทะฒะฐ ะบะพะปะฐั‚ะฐ ัะธ
  • ะ ะฐะทัั‚ะพัะฝะธะต: ะžะฑั‰ะพั‚ะพ ั€ะฐะทัั‚ะพัะฝะธะต ะฝะฐ ะฟัŠั‚ัƒะฒะฐะฝะตั‚ะพ
  • MaxSpeed: ะœะฐะบัะธะผะฐะปะฝะฐั‚ะฐ ัะบะพั€ะพัั‚ ะฝะฐ ะฟัŠั‚ัƒะฒะฐะฝะตั‚ะพ
  • ะžะฑั‰ะพ ะฒั€ะตะผะต: ะŸั€ะพะดัŠะปะถะธั‚ะตะปะฝะพัั‚ั‚ะฐ ะฝะฐ ะฟัŠั‚ัƒะฒะฐะฝะตั‚ะพ ะฒ ะผะธะฝัƒั‚ะธ

ะะฐะฑะพั€ัŠั‚ ะพั‚ ะดะฐะฝะฝะธ ะธะผะฐ ะพะบะพะปะพ 200 ะฝะฐะฑะปัŽะดะตะฝะธั ะฒ ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ ะธ ะฟัŠั‚ัƒะฒะฐะฝะธัั‚ะฐ ัะฐ ะฝะฐัั‚ัŠะฟะธะปะธ ะผะตะถะดัƒ ั‚ัั… Monday ะดะพ ะฟะตั‚ัŠะบ.

ะะฐ ะฟัŠั€ะฒะพ ะผััั‚ะพ, ั‚ั€ัะฑะฒะฐ ะดะฐ:

  • ะทะฐั€ะตะดะตั‚ะต ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ
  • ะฟั€ะพะฒะตั€ะตั‚ะต ัั‚ั€ัƒะบั‚ัƒั€ะฐั‚ะฐ ะฝะฐ ะดะฐะฝะฝะธั‚ะต.

ะ•ะดะฝะฐ ัƒะดะพะฑะฝะฐ ั„ัƒะฝะบั†ะธั ั dplyr ะต ั„ัƒะฝะบั†ะธัั‚ะฐ glimpse(). ะขะพะฒะฐ ะต ะฟะพะดะพะฑั€ะตะฝะธะต ัะฟั€ัะผะพ str(). ะœะพะถะตะผ ะดะฐ ะธะทะฟะพะปะทะฒะฐะผะต glimpse(), ะทะฐ ะดะฐ ะฒะธะดะธะผ ัั‚ั€ัƒะบั‚ัƒั€ะฐั‚ะฐ ะฝะฐ ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ ะธ ะดะฐ ั€ะตัˆะธะผ ะบะฐะบะฒะฐ ะผะฐะฝะธะฟัƒะปะฐั†ะธั ะต ะฝะตะพะฑั…ะพะดะธะผะฐ.

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

ะžั‡ะตะฒะธะดะฝะพ ะต, ั‡ะต ะฟั€ะพะผะตะฝะปะธะฒะฐั‚ะฐ ะšะพะผะตะฝั‚ะฐั€ะธ ัะต ะฝัƒะถะดะฐะต ะพั‚ ะดะพะฟัŠะปะฝะธั‚ะตะปะฝะฐ ะดะธะฐะณะฝะพัั‚ะธะบะฐ. ะŸัŠั€ะฒะธั‚ะต ะฝะฐะฑะปัŽะดะตะฝะธั ะฝะฐ ะฟั€ะพะผะตะฝะปะธะฒะฐั‚ะฐ Comments ัะฐ ัะฐะผะพ ะปะธะฟัะฒะฐั‰ะธ ัั‚ะพะนะฝะพัั‚ะธ.

sum(df$Comments =="")

Code ะžะฑััะฝะตะฝะธะต

  • sum(df$Comments ==โ€โ€): ะกัƒะผะธั€ะฐะนั‚ะต ะฝะฐะฑะปัŽะดะตะฝะธัั‚ะฐ, ั€ะฐะฒะฝะธ ะฝะฐ โ€œโ€ ะฒ ะบะพะปะพะฝะฐั‚ะฐ ะบะพะผะตะฝั‚ะฐั€ะธ ะพั‚ df

ะ˜ะทั…ะพะด:

## [1] 181

ะธะทะฑะตั€ะตั‚ะต()

ะฉะต ะทะฐะฟะพั‡ะฝะตะผ ั ะณะปะฐะณะพะปะฐ select(). ะะต ะต ะทะฐะดัŠะปะถะธั‚ะตะปะฝะพ ะดะฐ ะธะผะฐะผะต ะฝัƒะถะดะฐ ะพั‚ ะฒัะธั‡ะบะธ ะฟั€ะพะผะตะฝะปะธะฒะธ ะธ ะดะพะฑั€ะฐ ะฟั€ะฐะบั‚ะธะบะฐ ะต ะดะฐ ะธะทะฑะตั€ะตั‚ะต ัะฐะผะพ ะฟั€ะพะผะตะฝะปะธะฒะธั‚ะต, ะบะพะธั‚ะพ ัะผัั‚ะฐั‚ะต ะทะฐ ะฟะพะดั…ะพะดัั‰ะธ.

ะ˜ะผะฐะผะต 181 ะปะธะฟัะฒะฐั‰ะธ ะฝะฐะฑะปัŽะดะตะฝะธั, ะฟะพั‡ั‚ะธ 90 ะฟั€ะพั†ะตะฝั‚ะฐ ะพั‚ ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ. ะะบะพ ั€ะตัˆะธั‚ะต ะดะฐ ะณะธ ะธะทะบะปัŽั‡ะธั‚ะต, ะฝัะผะฐ ะดะฐ ะผะพะถะตั‚ะต ะดะฐ ะฟั€ะพะดัŠะปะถะธั‚ะต ะฐะฝะฐะปะธะทะฐ.

ะ”ั€ัƒะณะฐั‚ะฐ ะฒัŠะทะผะพะถะฝะพัั‚ ะต ะดะฐ ะธะทะฟัƒัะฝะตั‚ะต ะฟั€ะพะผะตะฝะปะธะฒะฐั‚ะฐ Comment ั ะณะปะฐะณะพะปะฐ select().

ะœะพะถะตะผ ะดะฐ ะธะทะฑะธั€ะฐะผะต ะฟั€ะพะผะตะฝะปะธะฒะธ ะฟะพ ั€ะฐะทะปะธั‡ะฝะธ ะฝะฐั‡ะธะฝะธ ั select(). ะ˜ะผะฐะนั‚ะต ะฟั€ะตะดะฒะธะด, ั‡ะต ะฟัŠั€ะฒะธัั‚ ะฐั€ะณัƒะผะตะฝั‚ ะต ะฝะฐะฑะพั€ัŠั‚ ะพั‚ ะดะฐะฝะฝะธ.

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

ะœะพะถะตั‚ะต ะดะฐ ะธะทะฟะพะปะทะฒะฐั‚ะต ั‚ั€ะตั‚ะธั ะฝะฐั‡ะธะฝ, ะทะฐ ะดะฐ ะธะทะบะปัŽั‡ะธั‚ะต ะฟั€ะพะผะตะฝะปะธะฒะฐั‚ะฐ Comments.

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

ะ˜ะทั…ะพะด:

## [1] 205  14
dim(step_1_df)

ะ˜ะทั…ะพะด:

## [1] 205  13

ะžั€ะธะณะธะฝะฐะปะฝะธัั‚ ะฝะฐะฑะพั€ ะพั‚ ะดะฐะฝะฝะธ ะธะผะฐ 14 ั„ัƒะฝะบั†ะธะธ, ะดะพะบะฐั‚ะพ step_1_df ะธะผะฐ 13.

ะคะธะปั‚ัŠั€()

ะ“ะปะฐะณะพะปัŠั‚ filter() ะฟะพะผะฐะณะฐ ะฝะฐะฑะปัŽะดะตะฝะธัั‚ะฐ ะดะฐ ัะปะตะดะฒะฐั‚ ะบั€ะธั‚ะตั€ะธะธ. Filter() ั€ะฐะฑะพั‚ะธ ั‚ะพั‡ะฝะพ ะบะฐั‚ะพ select(), ะฟัŠั€ะฒะพ ะฟั€ะตะดะฐะฒะฐั‚ะต ั€ะฐะผะบะฐั‚ะฐ ั ะดะฐะฝะฝะธ ะธ ัะปะตะด ั‚ะพะฒะฐ ัƒัะปะพะฒะธะต, ั€ะฐะทะดะตะปะตะฝะพ ััŠั ะทะฐะฟะตั‚ะฐั:

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

ะ•ะดะธะฝ ะบั€ะธั‚ะตั€ะธะน

ะŸัŠั€ะฒะพ, ะผะพะถะตั‚ะต ะดะฐ ะฟั€ะตะฑั€ะพะธั‚ะต ะฑั€ะพั ะฝะฐ ะฝะฐะฑะปัŽะดะตะฝะธัั‚ะฐ ะฒ ั€ะฐะผะบะธั‚ะต ะฝะฐ ะฒััะบะพ ะฝะธะฒะพ ะฝะฐ ั„ะฐะบั‚ะพั€ะฝะฐ ะฟั€ะพะผะตะฝะปะธะฒะฐ.

table(step_1_df$GoingTo)

Code ะžะฑััะฝะตะฝะธะต

  • table(): ะŸั€ะตะฑั€ะพะนั‚ะต ะฑั€ะพั ะฝะฐ ะฝะฐะฑะปัŽะดะตะฝะธัั‚ะฐ ะฟะพ ะฝะธะฒะพ. ะ—ะฐะฑะตะปะตะถะตั‚ะต, ั‡ะต ัะต ะฟั€ะธะตะผะฐั‚ ัะฐะผะพ ะฟั€ะพะผะตะฝะปะธะฒะธ ะฝะฐ ะฝะธะฒะพ ั„ะฐะบั‚ะพั€
  • table(step_1_df$GoingTo): ะŸั€ะตะฑั€ะพะนั‚ะต ะฑั€ะพั ะฝะฐ ะฟัŠั‚ัƒะฒะฐะฝะธัั‚ะฐ ะดะพ ะบั€ะฐะนะฝะฐั‚ะฐ ะดะตัั‚ะธะฝะฐั†ะธั.

ะ˜ะทั…ะพะด:

## 
##  GSK Home 
##  105  100	

ะคัƒะฝะบั†ะธะพะฝะฐะปะฝะฐั‚ะฐ ั‚ะฐะฑะปะธั†ะฐ() ะฟะพะบะฐะทะฒะฐ, ั‡ะต 105 ะฟัŠั‚ัƒะฒะฐะฝะธั ะพั‚ะธะฒะฐั‚ ะดะพ GSK ะธ 100 ะดะพ ะดะพะผะฐ.

ะœะพะถะตะผ ะดะฐ ั„ะธะปั‚ั€ะธั€ะฐะผะต ะดะฐะฝะฝะธั‚ะต, ะทะฐ ะดะฐ ะฒัŠั€ะฝะตะผ ะตะดะธะฝ ะฝะฐะฑะพั€ ะพั‚ ะดะฐะฝะฝะธ ััŠั 105 ะฝะฐะฑะปัŽะดะตะฝะธั ะธ ะดั€ัƒะณ ััŠั 100 ะฝะฐะฑะปัŽะดะตะฝะธั.

# Select observations
if GoingTo == Home
select_home <- filter(df, GoingTo == "Home")
dim(select_home)

ะ˜ะทั…ะพะด:

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

ะ˜ะทั…ะพะด:

## [1] 105  14

ะœะฝะพะถะตัั‚ะฒะพ ะบั€ะธั‚ะตั€ะธะธ

ะœะพะถะตะผ ะดะฐ ั„ะธะปั‚ั€ะธั€ะฐะผะต ะฝะฐะฑะพั€ ะพั‚ ะดะฐะฝะฝะธ ั ะฟะพะฒะตั‡ะต ะพั‚ ะตะดะธะฝ ะบั€ะธั‚ะตั€ะธะน. ะะฐะฟั€ะธะผะตั€, ะผะพะถะตั‚ะต ะดะฐtracะฝะฐะฑะปัŽะดะตะฝะธัั‚ะฐ, ะฟั€ะธ ะบะพะธั‚ะพ ะดะตัั‚ะธะฝะฐั†ะธัั‚ะฐ ะต ะ”ะพะผ ะธ ัะฐ ัะต ัะปัƒั‡ะธะปะธ ะฒ ัั€ัะดะฐ.

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

ะ˜ะทั…ะพะด:

## [1] 23 14

23 ะฝะฐะฑะปัŽะดะตะฝะธั ะพั‚ะณะพะฒะฐั€ัั‚ ะฝะฐ ั‚ะพะทะธ ะบั€ะธั‚ะตั€ะธะน.

ะขั€ัŠะฑะพะฟั€ะพะฒะพะด

ะกัŠะทะดะฐะฒะฐะฝะตั‚ะพ ะฝะฐ ะฝะฐะฑะพั€ ะพั‚ ะดะฐะฝะฝะธ ะธะทะธัะบะฒะฐ ะผะฝะพะณะพ ะพะฟะตั€ะฐั†ะธะธ, ะบะฐั‚ะพ ะฝะฐะฟั€ะธะผะตั€:

  • ะฒะฝะพัะธั‚ะตะป
  • ัะปะธะฒะฐะฝะต
  • ะธะทะฑะพั€
  • ั„ะธะปั‚ั€ะธั€ะฐะฝะต
  • ะธ ั‚ะฐะบะฐ ะฝะฐั‚ะฐั‚ัŠะบ

ะ‘ะธะฑะปะธะพั‚ะตะบะฐั‚ะฐ dplyr ะธะดะฒะฐ ั ะฟั€ะฐะบั‚ะธั‡ะตะฝ ะพะฟะตั€ะฐั‚ะพั€ %>%, ะฝะฐั€ะตั‡ะตะฝ the ั‚ั€ัŠะฑะพะฟั€ะพะฒะพะด. ะคัƒะฝะบั†ะธัั‚ะฐ ะทะฐ ั‚ั€ัŠะฑะพะฟั€ะพะฒะพะด ะฟั€ะฐะฒะธ ะผะฐะฝะธะฟัƒะปะฐั†ะธัั‚ะฐ ั‡ะธัั‚ะฐ, ะฑัŠั€ะทะฐ ะธ ะฟะพ-ะผะฐะปะบะพ ัะบะปะพะฝะฝะฐ ะบัŠะผ ะณั€ะตัˆะบะธ.

ะขะพะทะธ ะพะฟะตั€ะฐั‚ะพั€ ะต ะบะพะด, ะบะพะนั‚ะพ ะธะทะฟัŠะปะฝัะฒะฐ ัั‚ัŠะฟะบะธ, ะฑะตะท ะดะฐ ะทะฐะฟะธัะฒะฐ ะผะตะถะดะธะฝะฝะธ ัั‚ัŠะฟะบะธ ะฝะฐ ั‚ะฒัŠั€ะดะธั ะดะธัะบ. ะะบะพ ัะต ะฒัŠั€ะฝะตั‚ะต ะบัŠะผ ะฝะฐัˆะธั ะฟั€ะธะผะตั€ ะพั‚ ะฟะพ-ะณะพั€ะต, ะผะพะถะตั‚ะต ะดะฐ ะธะทะฑะตั€ะตั‚ะต ะฟั€ะพะผะตะฝะปะธะฒะธั‚ะต ะพั‚ ะธะฝั‚ะตั€ะตั ะธ ะดะฐ ะณะธ ั„ะธะปั‚ั€ะธั€ะฐั‚ะต. ะ˜ะผะฐะผะต ั‚ั€ะธ ัั‚ัŠะฟะบะธ:

  • ะกั‚ัŠะฟะบะฐ 1: ะ˜ะผะฟะพั€ั‚ะธั€ะฐะฝะต ะฝะฐ ะดะฐะฝะฝะธ: ะ˜ะผะฟะพั€ั‚ะธั€ะฐะนั‚ะต gps ะดะฐะฝะฝะธั‚ะต
  • ะกั‚ัŠะฟะบะฐ 2: ะ˜ะทะฑะตั€ะตั‚ะต ะดะฐะฝะฝะธ: ะ˜ะทะฑะตั€ะตั‚ะต GoingTo ะธ DayOfWeek
  • ะกั‚ัŠะฟะบะฐ 3: ะคะธะปั‚ั€ะธั€ะฐะฝะต ะฝะฐ ะดะฐะฝะฝะธ: ะ’ัŠั€ะฝะตั‚ะต ัะต ัะฐะผะพ ัƒ ะดะพะผะฐ ะธ ัั€ัะดะฐ

ะœะพะถะตะผ ะดะฐ ะธะทะฟะพะปะทะฒะฐะผะต ั‚ั€ัƒะดะฝะธั ะฝะฐั‡ะธะฝ ะดะฐ ะณะพ ะฝะฐะฟั€ะฐะฒะธะผ:

# Step 1
step_1 <- read.csv(PATH)

# Step 2 
step_2 <- select(step_1, GoingTo, DayOfWeek)

# Step 3 
step_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 anymore
Note: 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 pipeline
filter_home_wed <- 

#Step 1
read.csv(PATH) % > % 

#Step 2
select(GoingTo, DayOfWeek) % > % 

#Step 3
filter(GoingTo == "Home",DayOfWeek == "Wednesday")
identical(step_3, filter_home_wed)

ะ˜ะทั…ะพะด:

## [1] TRUE

ะะธะต ัะผะต ะณะพั‚ะพะฒะธ ะดะฐ ััŠะทะดะฐะดะตะผ ะทะฐัˆะตะผะตั‚ัะฒะฐั‰ ะฝะฐะฑะพั€ ะพั‚ ะดะฐะฝะฝะธ ั ะพะฟะตั€ะฐั‚ะพั€ะฐ ะฝะฐ ั‚ั€ัŠะฑะพะฟั€ะพะฒะพะดะฐ.

ะฟะพะดั€ะตะถะดะฐะผ()

ะฒ ะฟั€ะตะดะธัˆะตะฝ ัƒั€ะพะบ, ะฝะฐัƒั‡ะฐะฒะฐั‚ะต ะบะฐะบ ะดะฐ ัะพั€ั‚ะธั€ะฐั‚ะต ัั‚ะพะนะฝะพัั‚ะธั‚ะต ั ั„ัƒะฝะบั†ะธัั‚ะฐ sort(). ะ‘ะธะฑะปะธะพั‚ะตะบะฐั‚ะฐ dplyr ะธะผะฐ ั„ัƒะฝะบั†ะธั ะทะฐ ัะพั€ั‚ะธั€ะฐะฝะต. ะ ะฐะฑะพั‚ะธ ะบะฐั‚ะพ ั‡ะฐั€ ั ั‚ั€ัŠะฑะพะฟั€ะพะฒะพะดะฐ. ะ“ะปะฐะณะพะปัŠั‚ arrange() ะผะพะถะต ะดะฐ ะฟั€ะตะฝะฐั€ะตะดะธ ะตะดะธะฝ ะธะปะธ ะผะฝะพะณะพ ั€ะตะดะพะฒะต, ะฒัŠะทั…ะพะดัั‰ะพ (ะฟะพ ะฟะพะดั€ะฐะทะฑะธั€ะฐะฝะต) ะธะปะธ ะฝะธะทั…ะพะดัั‰ะพ.

- `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 distance
step_2_df <-step_1_df %>%
	arrange(GoingTo, Distance)
head<step_2_df)

ะ˜ะทั…ะพะด:

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

Oะฑะพะฑั‰ะตะฝะธะต

ะ’ ั‚ะฐะฑะปะธั†ะฐั‚ะฐ ะฟะพ-ะดะพะปัƒ ะพะฑะพะฑั‰ะฐะฒะฐั‚ะต ะฒัะธั‡ะบะธ ะพะฟะตั€ะฐั†ะธะธ, ะบะพะธั‚ะพ ะฝะฐัƒั‡ะธั…ั‚ะต ะฟะพ ะฒั€ะตะผะต ะฝะฐ ัƒั€ะพะบะฐ.

ะณะปะฐะณะพะป ะฆะตะป Code ะžะฑััะฝะตะฝะธะต
ะฑะตะณัŠะป ะฟะพะณะปะตะด ะฟั€ะพะฒะตั€ะตั‚ะต ัั‚ั€ัƒะบั‚ัƒั€ะฐั‚ะฐ ะฝะฐ df
glimpse(df)
ะ˜ะดะตะฝั‚ะธั‡ะตะฝ ะฝะฐ str()
ะธะทะฑะตั€ะตั‚ะต() ะ˜ะทะฑะตั€ะตั‚ะต/ะธะทะบะปัŽั‡ะตั‚ะต ะฟั€ะพะผะตะฝะปะธะฒะธั‚ะต
select(df, A, B ,C)
ะ˜ะทะฑะตั€ะตั‚ะต ะฟั€ะพะผะตะฝะปะธะฒะธั‚ะต A, B ะธ C
select(df, A:C)
ะ˜ะทะฑะตั€ะตั‚ะต ะฒัะธั‡ะบะธ ะฟั€ะพะผะตะฝะปะธะฒะธ ะพั‚ A ะดะพ C
select(df, -C)
ะ˜ะทะบะปัŽั‡ะตั‚ะต C
ั„ะธะปั‚ัŠั€() ะคะธะปั‚ั€ะธั€ะฐะนั‚ะต df ะฒัŠะท ะพัะฝะพะฒะฐ ะฝะฐ ะตะดะฝะพ ะธะปะธ ะผะฝะพะณะพ ัƒัะปะพะฒะธั
filter(df, condition1)
ะ•ะดะฝะพ ัƒัะปะพะฒะธะต
filter(df, condition1
ััŠัั‚ะพัะฝะธะต2)
ะฟะพะดั€ะตะถะดะฐะผ() ะกะพั€ั‚ะธั€ะฐะนั‚ะต ะฝะฐะฑะพั€ะฐ ะพั‚ ะดะฐะฝะฝะธ ั ะตะดะฝะฐ ะธะปะธ ะผะฝะพะณะพ ะฟั€ะพะผะตะฝะปะธะฒะธ
arrange(A)
ะ’ัŠะทั…ะพะดัั‰ ะฒะธะด ะฝะฐ ะฟั€ะพะผะตะฝะปะธะฒะฐ A
arrange(A, B)
ะ’ัŠะทั…ะพะดัั‰ ัะพั€ั‚ ะฝะฐ ะฟั€ะพะผะตะฝะปะธะฒะธ A ะธ B
arrange(desc(A), B)
ะะธะทั…ะพะดัั‰ ะฒะธะด ะฝะฐ ะฟั€ะพะผะตะฝะปะธะฒะฐ A ะธ ะฒัŠะทั…ะพะดัั‰ ัะพั€ั‚ ะฝะฐ B
%>% ะกัŠะทะดะฐะนั‚ะต ั‚ั€ัŠะฑะพะฟั€ะพะฒะพะด ะผะตะถะดัƒ ะฒััะบะฐ ัั‚ัŠะฟะบะฐ
step 1 %>% step 2 %>% step 3

ะžะฑะพะฑั‰ะตั‚ะต ั‚ะฐะทะธ ะฟัƒะฑะปะธะบะฐั†ะธั ั: