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

โšก ะ ะพะทัƒะผะฝะธะน ะฟั–ะดััƒะผะพะบ

ะ’ะธะฑั–ั€, ั„ั–ะปัŒั‚ั€ะฐั†ั–ั ั‚ะฐ ัƒะฟะพั€ัะดะบัƒะฒะฐะฝะฝั ะฒ R โ€“ ั†ะต ั‚ั€ะธ ะดั–ั”ัะปะพะฒะฐ dplyr, ัะบั– ะทะฒะพะดัั‚ัŒ ั„ั€ะตะนะผ ะดะฐะฝะธั… ะดะพ ะฟะพั‚ั€ั–ะฑะฝะธั… ะฒะฐะผ ัั‚ะพะฒะฟั†ั–ะฒ, ั€ัะดะบั–ะฒ ั‚ะฐ ะฟะพั€ัะดะบัƒ. ะฆะตะน ะฟะพะบั€ะพะบะพะฒะธะน ะฟะพัั–ะฑะฝะธะบ ะพะฑ'ั”ะดะฝัƒั” ั—ั… ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ะพะฟะตั€ะฐั‚ะพั€ะฐ pipe ะฝะฐ ะฝะฐะฑะพั€ั– ะดะฐะฝะธั… ะฟั€ะพ ั‡ะฐั ะฟั€ะพั…ะพะดะถะตะฝะฝั ะท 205 ั€ัะดะบั–ะฒ.

  • ๐Ÿ“‹ ะ’ะธะฑั–ั€ ัั‚ะพะฒะฟั†ั: select(df, A, B) ะทะฑะตั€ั–ะณะฐั” ั–ะผะตะฝะพะฒะฐะฝั– ัั‚ะพะฒะฟั†ั–, select(df, A:C) ะทะฑะตั€ั–ะณะฐั” ะดั–ะฐะฟะฐะทะพะฝ, ะฐ select(df, -C) ะฒะธะดะฐะปัั” ะพะดะธะฝ.
  • ๐Ÿ”Ž ะคั–ะปัŒั‚ั€ะฐั†ั–ั ั€ัะดะบั–ะฒ: filter(df, ัƒะผะพะฒะฐ) ะทะฑะตั€ั–ะณะฐั” ะฒั–ะดะฟะพะฒั–ะดะฝั– ั€ัะดะบะธ, ะฐ ัƒะผะพะฒะธ ะฟะพั”ะดะฝัƒัŽั‚ัŒัั ะท ะฐะผะฟะตั€ัะฐะฝะดะพะผ ะดะปั ะ† ะฐะฑะพ ะฒะตั€ั‚ะธะบะฐะปัŒะฝะพัŽ ั€ะธัะบะพัŽ ะดะปั ะะ‘ะž.
  • ๐Ÿ”ฃ ะกะพั€ั‚ัƒะฒะฐะฝะฝั: arrange() ะทะฐ ะทะฐะผะพะฒั‡ัƒะฒะฐะฝะฝัะผ ัƒะฟะพั€ัะดะบะพะฒัƒั” ั€ัะดะบะธ ะทะฐ ะทั€ะพัั‚ะฐะฝะฝัะผ, ะฐ desc() ะฟะตั€ะตะฒะตั€ั‚ะฐั” ะฑัƒะดัŒ-ัะบะธะน ะพะบั€ะตะผะธะน ัั‚ะพะฒะฟะตั†ัŒ.
  • ๐Ÿ”— ะขั€ัƒะฑะฐ Operaั‚ะพั€: ะžะฟะตั€ะฐั‚ะพั€ %>% ะฟะตั€ะตะดะฐั” ะบะพะถะตะฝ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะฑะตะทะฟะพัะตั€ะตะดะฝัŒะพ ะฒ ะฝะฐัั‚ัƒะฟะฝะต ะดั–ั”ัะปะพะฒะพ, ั‚ะพะผัƒ ะฟั€ะพะผั–ะถะฝั– ะพะฑ'ั”ะบั‚ะธ ะฝะต ะทะฐั…ะฐั€ะฐั‰ัƒัŽั‚ัŒ ัะตั€ะตะดะพะฒะธั‰ะต.
  • ๐Ÿงน ะ”ะพะฟะพะผั–ะถะฝั– ั„ัƒะฝะบั†ั–ั—: ะคัƒะฝะบั†ั–ั— starts_with(), contains() ั‚ะฐ where() ะฒะธะฑะธั€ะฐัŽั‚ัŒ ัั‚ะพะฒะฟั†ั– ะทะฐ ัˆะฐะฑะปะพะฝะพะผ ะฐะฑะพ ั‚ะธะฟะพะผ, ะฐ ะฝะต ะทะฐ ะฝะฐะทะฒะพัŽ.
  • ๐Ÿ“ ะŸะพั€ัะดะพะบ ะดั–ั”ัะปั–ะฒ ะผะฐั” ะทะฝะฐั‡ะตะฝะฝั: ะกะฟะพั‡ะฐั‚ะบัƒ ั„ั–ะปัŒั‚ั€ัƒะนั‚ะต, ั‰ะพะฑ ะทะผะตะฝัˆะธั‚ะธ ะบั–ะปัŒะบั–ัั‚ัŒ ะดะฐะฝะธั…, ะฟะพั‚ั–ะผ ะฒะธะฑะธั€ะฐะนั‚ะต, ะฐ ะฟะพั‚ั–ะผ ัƒะฟะพั€ัะดะบะพะฒัƒะนั‚ะต, ั‰ะพ ะทะผะตะฝัˆัƒั” ะฒะฐั€ั‚ั–ัั‚ัŒ ะบะพะถะฝะพะณะพ ะฝะฐัั‚ัƒะฟะฝะพะณะพ ะบั€ะพะบัƒ.

R ะ’ะธะฑั€ะฐั‚ะธ ั„ั–ะปัŒั‚ั€ ะฃะฟะพั€ัะดะบัƒะฒะฐั‚ะธ ะบะพะฝะฒะตั”ั€

ะฉะพ ั‚ะฐะบะต dplyr ะฒ R?

dplyr โ€” ั†ะต ะฟะฐะบะตั‚ ะผะฐะฝั–ะฟัƒะปัŽะฒะฐะฝะฝั ะดะฐะฝะธะผะธ tidyverse. ะ’ั–ะฝ ะทะฐะผั–ะฝัŽั” ะดัƒะถะบะพะฒัƒ ะฝะพั‚ะฐั†ั–ัŽ base R ะท ะฝะตะฒะตะปะธะบะธะผ ะฝะฐะฑะพั€ะพะผ ะดั–ั”ัะปั–ะฒ, ะบะพะถะฝะต ะท ัะบะธั… ะฝะฐะทะฒะฐะฝะพ ะฝะฐ ั‡ะตัั‚ัŒ ะดั–ั—, ัะบัƒ ะฒะพะฝะพ ะฒะธะบะพะฝัƒั”, ั– ะบะพะถะฝะต ะท ัะบะธั… ะฟั€ะธะนะผะฐั” ั„ั€ะตะนะผ ะดะฐะฝะธั… ัะบ ัะฒั–ะน ะฟะตั€ัˆะธะน ะฐั€ะณัƒะผะตะฝั‚. ะกะฐะผะต ั†ั ัƒะทะณะพะดะถะตะฝะฐ ั„ะพั€ะผะฐ ะดะพะทะฒะพะปัั” ะพะฑ'ั”ะดะฝัƒะฒะฐั‚ะธ ะดั–ั”ัะปะพะฒะฐ ั€ะฐะทะพะผ.

ะดั–ั”ัะปะพะฒะพ ะ”ั–ั” ะฝะฐ ะฉะพ ะฒะพะฝะฐ ั€ะพะฑะธั‚ัŒ
ะฒะธะฑั€ะฐั‚ะธ () ะšะพะปะพะฝะธ ะ—ะฑะตั€ั–ะณะฐั” ะฐะฑะพ ะฒะธะดะฐะปัั” ะทะผั–ะฝะฝั–
filter () ั€ัะดะธ ะ—ะฑะตั€ั–ะณะฐั” ั€ัะดะบะธ, ั‰ะพ ะฒั–ะดะฟะพะฒั–ะดะฐัŽั‚ัŒ ัƒะผะพะฒั–
ัƒะฟะพั€ัะดะบัƒะฒะฐั‚ะธ() ั€ัะดะธ ะ—ะผั–ะฝัŽั” ะฟะพั€ัะดะพะบ ั€ัะดะบั–ะฒ ะฝะฐ ะพะดะธะฝ ะฐะฑะพ ะบั–ะปัŒะบะฐ ัั‚ะพะฒะฟั†ั–ะฒ
ะผัƒั‚ัƒะฒะฐั‚ะธ() ะšะพะปะพะฝะธ ะกั‚ะฒะพั€ัŽั” ะฐะฑะพ ะทะผั–ะฝัŽั” ะทะผั–ะฝะฝัƒ
ะฟั–ะดััƒะผัƒะฒะฐั‚ะธ() ะ’ัั ั‚ะฐะฑะปะธั†ั ะ—ะณะพั€ั‚ะฐั” ะฑะฐะณะฐั‚ะพ ั€ัะดะบั–ะฒ ะฒ ะพะดะฝัƒ ัั‚ะฐั‚ะธัั‚ะธะบัƒ
ะณั€ัƒะฟัƒะฒะฐั‚ะธ_ะทะฐ() ะ’ัั ั‚ะฐะฑะปะธั†ั ะ ะพะทะดั–ะปัั” ะดะฐะฝั– ั‚ะฐะบะธะผ ั‡ะธะฝะพะผ, ั‰ะพะฑ ะฟั–ะทะฝั–ัˆั– ะดั–ั”ัะปะพะฒะฐ ะฒะธะบะพะฝัƒะฒะฐะปะธัั ะดะปั ะบะพะถะฝะพั— ะณั€ัƒะฟะธ

ะฆะตะน ะฟะพัั–ะฑะฝะธะบ ะพั…ะพะฟะปัŽั” ะฟะตั€ัˆั– ั‚ั€ะธ ะดั–ั”ัะปะพะฒะฐ, ะฐ ั‚ะฐะบะพะถ ะฒะตั€ัั‚ะฐั‚. ะฝะฐะฒั‡ะฐะปัŒะฝะธะน ะฟะพัั–ะฑะฝะธะบ ะท ะฐะณั€ะตะณะฐั‚ะฝะธั… ั„ัƒะฝะบั†ั–ะน ะดะตั‚ะฐะปัŒะฝะพ ั€ะพะทะณะปัะดะฐั” group_by() ั‚ะฐ summarize().

ะะฐะฑั–ั€ ะดะฐะฝะธั…, ั‰ะพ ะฒะธะบะพั€ะธัั‚ะพะฒัƒั”ั‚ัŒัั ะฒ ั†ัŒะพะผัƒ ะฟะพัั–ะฑะฝะธะบัƒ

ะ‘ั–ะฑะปั–ะพั‚ะตะบะฐ ะฟั–ะด ะฝะฐะทะฒะพัŽ dplyr ะผั–ัั‚ะธั‚ัŒ ั†ั–ะฝะฝั– ะดั–ั”ัะปะพะฒะฐ ะดะปั ะฝะฐะฒั–ะณะฐั†ั–ั— ะฒ ะฝะฐะฑะพั€ั– ะดะฐะฝะธั…. ะฃ ั†ัŒะพะผัƒ ะฟะพัั–ะฑะฝะธะบัƒ ะฒะธ ะฑัƒะดะตั‚ะต ะฒะธะบะพั€ะธัั‚ะพะฒัƒะฒะฐั‚ะธ ะฝะฐะฑั–ั€ ะดะฐะฝะธั… Travel Time (ั‡ะฐั ะฟะพะดะพั€ะพะถั–). ะะฐะฑั–ั€ ะดะฐะฝะธั… ะทะฐะฟะธััƒั” ะฟะพั—ะทะดะบะธ, ัะบั– ะฒะพะดั–ะน ะทะดั–ะนัะฝัŽั” ะผั–ะถ ะดะพะผะพะผ ั– ั€ะพะฑะพั‚ะพัŽ. ะฃ ะฝะฐะฑะพั€ั– ะดะฐะฝะธั… ั” ั‡ะพั‚ะธั€ะฝะฐะดั†ัั‚ัŒ ะทะผั–ะฝะฝะธั…, ะทะพะบั€ะตะผะฐ:

  • DayOfWeek: ะฒะธะทะฝะฐั‡ั‚ะต ะดะตะฝัŒ ั‚ะธะถะฝั, ะบะพะปะธ ะฒะพะดั–ะน ะฒะธะบะพั€ะธัั‚ะพะฒัƒั” ัะฒั–ะน ะฐะฒั‚ะพะผะพะฑั–ะปัŒ
  • ะ’ั–ะดัั‚ะฐะฝัŒ: ะทะฐะณะฐะปัŒะฝะฐ ะฒั–ะดัั‚ะฐะฝัŒ ัˆะปัั…ัƒ
  • MaxSpeed: ะผะฐะบัะธะผะฐะปัŒะฝะฐ ัˆะฒะธะดะบั–ัั‚ัŒ ะฟะพะดะพั€ะพะถั–
  • ะ—ะฐะณะฐะปัŒะฝะธะน ั‡ะฐั: ั‚ั€ะธะฒะฐะปั–ัั‚ัŒ ัˆะปัั…ัƒ ะฒ ั…ะฒะธะปะธะฝะฐั…

ะะฐะฑั–ั€ ะดะฐะฝะธั… ะผั–ัั‚ะธั‚ัŒ 205 ัะฟะพัั‚ะตั€ะตะถะตะฝัŒ, ะฐ ะฟะพั—ะทะดะบะธ ะฒั–ะดะฑัƒะฒะฐะปะธัั ะท Monday ะดะพ ะฟ'ัั‚ะฝะธั†ั–.

ะŸะตั€ัˆ ะทะฐ ะฒัะต, ะฒะฐะผ ะฝะตะพะฑั…ั–ะดะฝะพ:

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

ะžะดะฝะฐ ะทั€ัƒั‡ะฝะฐ ั„ัƒะฝะบั†ั–ั dplyr โ€” ั†ะต glimpse(). ะ’ะพะฝะฐ ะฒั–ะดั–ะณั€ะฐั” ั‚ัƒ ัะฐะผัƒ ั€ะพะปัŒ, ั‰ะพ ะน str() ัƒ ะฑะฐะทะพะฒะพะผัƒ R, ะฐะปะต ะดั€ัƒะบัƒั” ะพะดะธะฝ ั€ัะดะพะบ ะดะปั ะบะพะถะฝะพั— ะทะผั–ะฝะฝะพั— ะท ั‚ะธะฟะพะผ ั‚ะฐ ะฟะตั€ัˆะธะผะธ ะบั–ะปัŒะบะพะผะฐ ะทะฝะฐั‡ะตะฝะฝัะผะธ, ั‰ะพ ะฝะฐะฑะฐะณะฐั‚ะพ ะปะตะณัˆะต ัะบะฐะฝัƒะฒะฐั‚ะธ ะฝะฐ ะฒะตะปะธะบะพะผัƒ ะฝะฐะฑะพั€ั– ะดะฐะฝะธั….

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.

ะ”ะพะฟะพะผั–ะถะฝั– ั„ัƒะฝะบั†ั–ั— select() ะฒ R

ะ†ะผะตะฝัƒะฒะฐะฝะฝั ะบะพะถะฝะพะณะพ ัั‚ะพะฒะฟั†ั ัั‚ะฐั” ะฝะตะฟั€ะฐะบั‚ะธั‡ะฝะธะผ, ะบะพะปะธ ะฝะฐะฑั–ั€ ะดะฐะฝะธั… ะผั–ัั‚ะธั‚ัŒ ะดะตััั‚ะบะธ ะทะผั–ะฝะฝะธั…. dplyr ะฟะพัั‚ะฐั‡ะฐั”ั‚ัŒัั ะท ะฟะพะผั–ั‡ะฝะธะบะฐะผะธ, ัะบั– ะฒะธะฑะธั€ะฐัŽั‚ัŒ ัั‚ะพะฒะฟั†ั– ะทะฐ ัˆะฐะฑะปะพะฝะพะผ ะฐะฑะพ ะทะฐ ั‚ะธะฟะพะผ.

ะŸะพะผั–ั‡ะฝะธะบ ะ’ะธะฑะธั€ะฐั” ัั‚ะพะฒะฟั†ั–, ัะบั– ะŸั€ะธะบะปะฐะด
ะฟะพั‡ะธะฝะฐั”ั‚ัŒัั_ะท() ะŸะพั‡ะฝั–ั‚ัŒ ะท ั€ัะดะบะฐ ะฒะธะฑั€ะฐั‚ะธ(df, ะฟะพั‡ะธะฝะฐั”ั‚ัŒัั_ะท(โ€œะกะตั€ะตะดะฝะตโ€))
ะทะฐะบั–ะฝั‡ัƒั”ั‚ัŒัั_ะฝะฐ() ะ—ะฐะบั–ะฝั‡ะธั‚ะธ ะผะพั‚ัƒะทะบะพัŽ ะฒะธะฑั€ะฐั‚ะธ(df, ะทะฐะบั–ะฝั‡ัƒั”ั‚ัŒัั_ะฒ("ะงะฐั"))
ะผั–ัั‚ะธั‚ัŒ() ะœั–ัั‚ะธั‚ะธ ั€ัะดะพะบ ะฑัƒะดัŒ-ะดะต ะฒะธะฑั€ะฐั‚ะธ(df, ะผั–ัั‚ะธั‚ัŒ(โ€œะจะฒะธะดะบั–ัั‚ัŒโ€))
ะฒั–ะดะฟะพะฒั–ะดะฐั”() ะ—ั–ัั‚ะฐะฒะปะตะฝะฝั ั€ะตะณัƒะปัั€ะฝะพะณะพ ะฒะธั€ะฐะทัƒ ะฒะธะฑั€ะฐั‚ะธ(df, ะทะฑั–ะณะธ(โ€œ^ะœะฐะบัะธะผัƒะผ|^ะกะตั€ะตะดะฝั”โ€))
ะดะต() ะ—ะฐะดะพะฒะพะปัŒะฝะธั‚ะธ ะฒะธะผะพะณะธ ั‚ะธะฟะพะฒะพะณะพ ะฒะธะฟั€ะพะฑัƒะฒะฐะฝะฝั ะฒะธะฑั€ะฐั‚ะธ(df, ะดะต(ั”.ั‡ะธัะปะพะฒะธะผ))
ะฒัะต() ะฉะต ะฝะต ะฝะฐะทะฒะฐะปะธ ะฒะธะฑั€ะฐั‚ะธ(df, TotalTime, ะฒัะต())
# Keep only the timing columns
df %>% select(ends_with("Time"))

# Keep every numeric column
df %>% select(where(is.numeric))

# Move TotalTime to the front, keep the rest in place
df %>% select(TotalTime, everything())

ะฉะต ะดะฒะฐ ะดั–ั”ัะปะพะฒะฐ ะฟั€ะธั€ะพะดะฝะพ ะฟะพั”ะดะฝัƒัŽั‚ัŒัั ะท select(). ะ’ะธะบะพั€ะธัั‚ะพะฒัƒะนั‚ะต rename(new_name = old_name) ะดะปั ะฟะตั€ะตะผั–ั‰ะตะฝะฝั ัั‚ะพะฒะฟั†ั ะฑะตะท ะฒะธะดะฐะปะตะฝะฝั.ping ั–ะฝัˆั–, ะฐ relocate() โ€“ ะดะปั ะฟะตั€ะตะผั–ั‰ะตะฝะฝั ัั‚ะพะฒะฟั†ั–ะฒ ะฑะตะท ะฟะตั€ะตั€ะฐั…ัƒะฒะฐะฝะฝั ั—ั… ัƒัั–ั….

filter ()

ะ”ั–ั”ัะปะพะฒะพ 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 where GoingTo == Home
select_home <- filter(df, GoingTo == "Home")
dim(select_home)

ะฒะธั…ั–ะด:

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

ะฒะธั…ั–ะด:

## [1] 105  14

ะšั–ะปัŒะบะฐ ะบั€ะธั‚ะตั€ั–ั—ะฒ

ะœะธ ะผะพะถะตะผะพ ั„ั–ะปัŒั‚ั€ัƒะฒะฐั‚ะธ ะฝะฐะฑั–ั€ ะดะฐะฝะธั… ะทะฐ ะบั–ะปัŒะบะพะผะฐ ะบั€ะธั‚ะตั€ั–ัะผะธ. ะะฐะฟั€ะธะบะปะฐะด, ะฒะธ ะผะพะถะตั‚ะต extracัะฟะพัั‚ะตั€ะตะถะตะฝะฝั, ะดะต ะฟัƒะฝะบั‚ะพะผ ะฟั€ะธะทะฝะฐั‡ะตะฝะฝั ั” ะ”ั–ะผ, ะฐ ะฟะพั—ะทะดะบะฐ ะฒั–ะดะฑัƒะปะฐัั ะฒ ัะตั€ะตะดัƒ.

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

ะฒะธั…ั–ะด:

## [1] 23 14

23 ัะฟะพัั‚ะตั€ะตะถะตะฝะฝั ะฒั–ะดะฟะพะฒั–ะดะฐะปะธ ั†ัŒะพะผัƒ ะบั€ะธั‚ะตั€ั–ัŽ.

ะ—ะฐะณะฐะปัŒะฝั– ัƒะผะพะฒะธ ั„ั–ะปัŒั‚ั€ะฐ() ั‚ะฐ Operaั‚ะพั€ะธ ะฒ ะ 

filter() ะทะฑะตั€ั–ะณะฐั” ะบะพะถะตะฝ ั€ัะดะพะบ, ะดะปั ัะบะพะณะพ ัƒะผะพะฒะฐ ะผะฐั” ะทะฝะฐั‡ะตะฝะฝั TRUE. ะ ัะดะบะธ, ัะบั– ะผะฐัŽั‚ัŒ ะทะฝะฐั‡ะตะฝะฝั NA, ะฒั–ะดะบะธะดะฐัŽั‚ัŒัั, ั‰ะพ ะดะธะฒัƒั” ะฑั–ะปัŒัˆั–ัั‚ัŒ ะฝะพะฒะฐั‡ะบั–ะฒ.

Operaั‚ะพั€ ะกะตะฝั ะŸั€ะธะบะปะฐะด
== ะ”ะพั€ั–ะฒะฝัŽั” ั„ั–ะปัŒั‚ั€(df, GoingTo == โ€œะ”ะพะดะพะผัƒโ€)
!= ะะต ะดะพั€ั–ะฒะฝัŽั” ั„ั–ะปัŒั‚ั€(df, ะ”ะตะฝัŒะขะธะถะฝั != โ€œMondayยป)
& ะ† ะพะฑะธะดะฒะฐ ะผะฐัŽั‚ัŒ ะฑัƒั‚ะธ ะฒะธะบะพะฝะฐะฝั– ั„ั–ะปัŒั‚ั€(df, ะ’ั–ะดัั‚ะฐะฝัŒ > 50 ั‚ะฐ ะœะฐะบัะธะผะฐะปัŒะฝะฐะจะฒะธะดะบั–ัั‚ัŒ > 130)
| ะะ‘ะž, ะฑัƒะดัŒ-ัะบะธะน ะท ะฝะธั… ะผะพะถะต ะผะฐั‚ะธ ะผั–ัั†ะต ั„ั–ะปัŒั‚ั€(df, ะ”ะตะฝัŒะขะธะถะฝั == โ€œMondayโ€ | ะ”ะตะฝัŒะขะธะถะฝั == โ€œะŸโ€™ัั‚ะฝะธั†ัโ€)
% ัƒ% ะ—ะฑั–ะณะฐั”ั‚ัŒัั ะท ะฑัƒะดัŒ-ัะบะธะผ ะทะฝะฐั‡ะตะฝะฝัะผ ัƒ ะฒะตะบั‚ะพั€ั– ั„ั–ะปัŒั‚ั€(df, ะ”ะตะฝัŒะขะธะถะฝั %ะฒ% c(โ€œMondayยซยป, ยซะŸ'ัั‚ะฝะธั†ัยป))
ะผั–ะถ() ะŸะพั‚ั€ะฐะฟะปัั” ะฒ ั‡ะธัะปะพะฒะธะน ะดั–ะฐะฟะฐะทะพะฝ ั„ั–ะปัŒั‚ั€(df, ะผั–ะถ(ะ’ั–ะดัั‚ะฐะฝัŒ, 48, 52))
is.na() ะ’ั–ะดััƒั‚ะฝั” ะทะฝะฐั‡ะตะฝะฝั ั„ั–ะปัŒั‚ั€(df, is.na(ะ’ะธั‚ั€ะฐั‚ะฐะŸะฐะปะธะฒะฐ))

ะขั€ะธ ะทะฒะธั‡ะบะธ ะทะฐะฟะพะฑั–ะณะฐัŽั‚ัŒ ะฑั–ะปัŒัˆะพัั‚ั– ะฟะพะผะธะปะพะบ filter().

  • ะ’ะธะบะพั€ะธัั‚ะพะฒัƒะนั‚ะต %in% ะทะฐะผั–ัั‚ัŒ ะปะฐะฝั†ัŽะณะพะฒะพะณะพ ะะ‘ะž. ั„ั–ะปัŒั‚ั€(df, ะ”ะตะฝัŒะขะธะถะฝั %ะฒ% c(โ€œMondayยซยป, ยซะŸโ€™ัั‚ะฝะธั†ัยป)) ะบะพั€ะพั‚ัˆะต ั– ะนะพะณะพ ะฝะฐะฑะฐะณะฐั‚ะพ ะฒะฐะถั‡ะต ะฟะพะผะธะปะธั‚ะธัั, ะฝั–ะถ ะดะฒะฐ ะฟะพั€ั–ะฒะฝัะฝะฝั ==, ะทโ€™ั”ะดะฝะฐะฝั– ะฒะตั€ั‚ะธะบะฐะปัŒะฝะพัŽ ั€ะธัะบะพัŽ.
  • ะั–ะบะพะปะธ ะฝะต ะฟะตั€ะตะฒั–ั€ัะนั‚ะต ะฒั–ะดััƒั‚ะฝั” ะทะฝะฐั‡ะตะฝะฝั ะทะฐ ะดะพะฟะพะผะพะณะพัŽ ==. ะ’ะธั€ะฐะท x == NA ะฟะพะฒะตั€ั‚ะฐั” NA, ะฐ ะฝะต TRUE, ั‚ะพะผัƒ ั€ัะดะพะบ ะฐะฒั‚ะพะผะฐั‚ะธั‡ะฝะพ ะฒะธะดะฐะปัั”ั‚ัŒัั. ะะฐั‚ะพะผั–ัั‚ัŒ ะฒะธะบะพั€ะธัั‚ะพะฒัƒะนั‚ะต is.na(x).
  • ะšะพะผะธ ะพะทะฝะฐั‡ะฐัŽั‚ัŒ ะ†. filter(df, a, b) ั–ะดะตะฝั‚ะธั‡ะฝะธะน filter(df, a & b), ั‚ะพะผัƒ ะฝะฐะฒะตะดะตะฝะธะน ั€ะฐะฝั–ัˆะต ะฟั€ะธะบะปะฐะด ัƒ ั†ัŒะพะผัƒ ะฟะพัั–ะฑะฝะธะบัƒ ะฟั€ะฐั†ัŽั” ะฒ ะฑัƒะดัŒ-ัะบะพะผัƒ ะฒะธะฟะฐะดะบัƒ.

ะขั€ัƒะฑะฐ Operaั‚ะพั€ ัƒ dplyr

ะกั‚ะฒะพั€ะตะฝะฝั ะฝะฐะฑะพั€ัƒ ะดะฐะฝะธั… ะฒะธะผะฐะณะฐั” ะฑะฐะณะฐั‚ัŒะพั… ะพะฟะตั€ะฐั†ั–ะน, ั‚ะฐะบะธั… ัะบ:

  • ั–ะผะฟะพั€ั‚
  • ะทะปะธั‚ั‚ั
  • ะฒะธะฑะธั€ะฐั”
  • ั„ั–ะปัŒั‚ั€ะฐั†ั–ั
  • ั– ั‚ะฐะบ ะดะฐะปั–

ะ‘ั–ะฑะปั–ะพั‚ะตะบะฐ 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 a trailing `%>%`, because nothing follows it
- Note: assigning the result to a new object is optional. Without it, the output prints 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

ะ”ั–ั”ัะปะพะฒะฐ dplyr ะฒ R: ะšะพั€ะพั‚ะบะธะน ะดะพะฒั–ะดะฝะธะบ

ะฃ ั‚ะฐะฑะปะธั†ั– ะฝะธะถั‡ะต ะฟะตั€ะตะปั–ั‡ะตะฝะพ ะฒัั– ะดั–ั”ัะปะพะฒะฐ, ั‰ะพ ะฒะธะบะพั€ะธัั‚ะพะฒัƒัŽั‚ัŒัั ะฒ ั†ัŒะพะผัƒ ะฟะพัั–ะฑะฝะธะบัƒ, ะท ัะธะฝั‚ะฐะบัะธัะพะผ ั‚ะฐ ั‚ะธะผ, ั‰ะพ ะฟะพะฒะตั€ั‚ะฐั” ะบะพะถะตะฝ ะฒะธะบะปะธะบ:

ะดั–ั”ัะปะพะฒะพ ะœะตั‚ะฐ Code ะŸะพััะฝะตะฝะฝั
ะพะณะปัะดะฐั‚ะธ ะฟะตั€ะตะฒั–ั€ั‚ะต ัั‚ั€ัƒะบั‚ัƒั€ัƒ df
glimpse(df)
ะขะต ัะฐะผะต ะฟั€ะธะทะฝะฐั‡ะตะฝะฝั, ั‰ะพ ะน str(), ะปะตะณัˆะต ั‡ะธั‚ะฐั‚ะธ
ะฒะธะฑั€ะฐั‚ะธ () ะ’ะธะฑะตั€ั–ั‚ัŒ/ะฒะธะบะปัŽั‡ั–ั‚ัŒ ะทะผั–ะฝะฝั–
select(df, A, B ,C)
ะ’ะธะฑะตั€ั–ั‚ัŒ ะทะผั–ะฝะฝั– A, B ั– C
select(df, A:C)
ะ’ะธะฑะตั€ั–ั‚ัŒ ัƒัั– ะทะผั–ะฝะฝั– ะฒั–ะด A ะดะพ C
select(df, -C)
ะ’ะธะบะปัŽั‡ะธั‚ะธ C
filter () ะ—ะฑะตั€ั–ะณะฐะนั‚ะต ั€ัะดะบะธ, ั‰ะพ ะฒั–ะดะฟะพะฒั–ะดะฐัŽั‚ัŒ ะพะดะฝั–ะน ะฐะฑะพ ะบั–ะปัŒะบะพะผ ัƒะผะพะฒะฐะผ
filter(df, condition1)
ะžะดะฝะฐ ัƒะผะพะฒะฐ
filter(df, condition1 & condition2)
ะ”ะฒั– ัƒะผะพะฒะธ, ะฟะพั”ะดะฝะฐะฝั– ะท ะ†
ัƒะฟะพั€ัะดะบัƒะฒะฐั‚ะธ() ะกะพั€ั‚ัƒะนั‚ะต ะฝะฐะฑั–ั€ ะดะฐะฝะธั… ะทะฐ ะพะดะฝั–ั”ัŽ ะฐะฑะพ ะฑะฐะณะฐั‚ัŒะผะฐ ะทะผั–ะฝะฝะธะผะธ
arrange(A)
ะกะพั€ั‚ัƒะฒะฐะฝะฝั ะทะผั–ะฝะฝะพั— ะ ะทะฐ ะทั€ะพัั‚ะฐะฝะฝัะผ
arrange(A, B)
ะกะพั€ั‚ัƒะฒะฐะฝะฝั ะทะฐ ะทั€ะพัั‚ะฐะฝะฝัะผ ะทะผั–ะฝะฝะธั… A ั– B
arrange(desc(A), B)
ะกะพั€ั‚ัƒะฒะฐะฝะฝั ะทะฐ ัะฟะฐะดะฐะฝะฝัะผ ะทะผั–ะฝะฝะพั— A ั‚ะฐ ัะพั€ั‚ัƒะฒะฐะฝะฝั ะทะฐ ะทั€ะพัั‚ะฐะฝะฝัะผ B
%>% ะกั‚ะฒะพั€ั–ั‚ัŒ ะบะพะฝะฒะตั”ั€ ะผั–ะถ ะบะพะถะฝะธะผ ะบั€ะพะบะพะผ
step 1 %>% step 2 %>% step 3

ะŸะพัˆะธั€ะตะฝั– ะทะฐะฟะธั‚ะฐะฝะฝั

ะšะฐะฝะฐะฒะบะฐ magrittr %>% ะฟะพัั‚ะฐั‡ะฐั”ั‚ัŒัั ะท dplyr ั‚ะฐ ะฟั–ะดั‚ั€ะธะผัƒั” ัะธะฝั‚ะฐะบัะธั ะทะฐะฟะพะฒะฝัŽะฒะฐั‡ั–ะฒ ะท ะบั€ะฐะฟะบะพัŽ. ะ’ะฑัƒะดะพะฒะฐะฝะฐ ะบะฐะฝะฐะฒะบะฐ |> ะท'ัะฒะธะปะฐัั ะฒ R 4.1 ั– ะฝะต ะฟะพั‚ั€ะตะฑัƒั” ะฟะฐะบะตั‚ัƒะฒะฐะฝะฝั. ะžะฑะธะดะฒะฐ ะฟะตั€ะตะดะฐัŽั‚ัŒ ะปั–ะฒะธะน ั€ะตะทัƒะปัŒั‚ะฐั‚ ัƒ ะฟะตั€ัˆะธะน ะฐั€ะณัƒะผะตะฝั‚ ะฟั€ะฐะฒะพั€ัƒั‡.

ะั–. ะšะพะถะฝะต ะดั–ั”ัะปะพะฒะพ dplyr ะฟะพะฒะตั€ั‚ะฐั” ะฝะพะฒะธะน ั„ั€ะตะนะผ ะดะฐะฝะธั… ั– ะทะฐะปะธัˆะฐั” ะฒั…ั–ะดะฝั– ะดะฐะฝั– ะฝะตะดะพั‚ะพั€ะบะฐะฝะธะผะธ. ะฉะพะฑ ะทะผั–ะฝะธ ะทะฑะตั€ะตะณะปะธัั, ะฟะพั‚ั€ั–ะฑะฝะพ ะฟั€ะธะทะฝะฐั‡ะธั‚ะธ ั€ะตะทัƒะปัŒั‚ะฐั‚ ะพะฑ'ั”ะบั‚ัƒ ะฐะฑะพ ะฟะตั€ะตะดะฐั‚ะธ ะนะพะณะพ ะดะฐะปั–.

ะŸะพั€ั–ะฒะฝัะฝะฝั ะท NA ะฟะพะฒะตั€ั‚ะฐั” NA, ะฐ ะฝะต TRUE, ะฐ filter() ะทะฑะตั€ั–ะณะฐั” ะปะธัˆะต ั€ัะดะบะธ, ัะบั– ะผะฐัŽั‚ัŒ ะทะฝะฐั‡ะตะฝะฝั TRUE. ะ’ะธะบะพั€ะธัั‚ะพะฒัƒะนั‚ะต is.na() ะดะปั ะฝะฐะฒะผะธัะฝะพะณะพ ะฒะธะฑะพั€ัƒ ะฒั–ะดััƒั‚ะฝั–ั… ะทะฝะฐั‡ะตะฝัŒ ะฐะฑะพ drop_na() ะท tidyr ะดะปั ั—ั… ะฒะธะดะฐะปะตะฝะฝั.

ะ†ะฝะถะตะฝะตั€ั–ั ะพะทะฝะฐะบ ะดะปั ะผะพะดะตะปะตะน ะจะ† ะทะดะตะฑั–ะปัŒัˆะพะณะพ ะฟะพะปัะณะฐั” ะฒ ั„ั–ะปัŒั‚ั€ะฐั†ั–ั— ั€ัะดะบั–ะฒ, ะฒะธะฑะพั€ั– ัั‚ะพะฒะฟั†ั–ะฒ ั‚ะฐ ัะพั€ั‚ัƒะฒะฐะฝะฝั–. dplyr ะฟั€ะตะดัั‚ะฐะฒะปัั” ั†ั– ะบั€ะพะบะธ ัะบ ั‡ะธั‚ะฐะฑะตะปัŒะฝั– ะบะพะฝะฒะตั”ั€ะธ, ัะบั– ะผะพะถัƒั‚ัŒ ะฟะตั€ะตะฒั–ั€ัั‚ะธ ั€ะตั†ะตะฝะทะตะฝั‚ะธ, ั‰ะพ ะฒะฐะถะปะธะฒะพ, ะบะพะปะธ ะฝะฐะฒั‡ะฐะปัŒะฝะธะน ะฝะฐะฑั–ั€ ะดะฐะฝะธั… ะผะฐั” ะฑัƒั‚ะธ ะฒั–ะดั‚ะฒะพั€ัŽะฒะฐะฝะธะผ.

ะขะฐะบ. ะŸะพะผั–ั‡ะฝะธะบะธ ะจะ† ะผะพะถัƒั‚ัŒ ะฟะตั€ะตั‚ะฒะพั€ัŽะฒะฐั‚ะธ ะฟั–ะดะผะฝะพะถะธะฝะธ ะดัƒะถะพะบ ัƒ ะฒะธะบะปะธะบะธ select() ั‚ะฐ filter() ั– ะฟะพััะฝัŽะฒะฐั‚ะธ ะบะพะฝะฒะตั”ั€. ะ—ะฐะฒะถะดะธ ะทะฐะฟัƒัะบะฐะนั‚ะต ะพะฑะธะดะฒั– ะฒะตั€ัั–ั— ั‚ะฐ ะฟะพั€ั–ะฒะฝัŽะนั‚ะต ั€ะพะทะผั–ั€ะธ, ะพัะบั–ะปัŒะบะธ ะฑะฐะทะพะฒะธะน R ั‚ะฐ dplyr ะฟะพ-ั€ั–ะทะฝะพะผัƒ ะพะฑั€ะพะฑะปััŽั‚ัŒ ะฒั–ะดััƒั‚ะฝั– ะทะฝะฐั‡ะตะฝะฝั.

ะŸั–ะดััƒะผัƒะนั‚ะต ั†ะตะน ะฟะพัั‚ ะทะฐ ะดะพะฟะพะผะพะณะพัŽ: