วิธีการใช้ตัวดำเนินการไปป์ใน r (พร้อมตัวอย่าง)


คุณสามารถใช้ตัวดำเนินการไปป์ ( %>% ) ใน R เพื่อ “ไปป์” ลำดับการดำเนินการร่วมกัน

โอเปอเรเตอร์นี้มักใช้กับแพ็คเกจ dplyr ใน R เพื่อดำเนินการลำดับการดำเนินการบนเฟรมข้อมูล

ไวยากรณ์พื้นฐานของตัวดำเนินการไปป์คือ:

 df %>% 
  do_this_operation %>% 
  then_do_this_operation %>%
  then_do_this_operation ...

ผู้ดำเนินการไปป์เพียงแค่ส่งผลลัพธ์ของการดำเนินการหนึ่งไปยังการดำเนินการถัดไปที่อยู่ด้านล่าง

ข้อดีของการใช้ตัวดำเนินการไปป์คือทำให้อ่านโค้ดได้ง่ายมาก

ตัวอย่างต่อไปนี้แสดงวิธีใช้ตัวดำเนินการไปป์ในสถานการณ์ต่างๆ ด้วยชุดข้อมูล mtcars ที่สร้างไว้ใน R

 #view first six rows of mtcars dataset
head(mtcars)

                   mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1

ตัวอย่างที่ 1: ใช้ตัวดำเนินการไปป์เพื่อสรุปตัวแปร

รหัสต่อไปนี้แสดงวิธีใช้ตัวดำเนินการไปป์ ( %>% ) เพื่อจัดกลุ่มตามตัวแปร cyl จากนั้นสรุปค่าเฉลี่ยของตัวแปร mpg :

 library (dplyr)

#summarize mean mpg grouped by cyl
mtcars %>% 
  group_by(cyl) %>% 
  summarize(mean_mpg = mean(mpg))

# A tibble: 3 x 2
    cyl mean_mpg
      
1 4 26.7
2 6 19.7
3 8 15.1

จากผลลัพธ์เราจะเห็นได้ว่า:

  • ค่า mpg เฉลี่ยสำหรับรถยนต์ที่มีค่ากระบอกสูบ 4 คือ 26.7
  • ค่า mpg เฉลี่ยสำหรับรถยนต์ที่มีค่ากระบอกสูบ 6 คือ 19.7
  • ค่า mpg เฉลี่ยสำหรับรถยนต์ที่มีค่ากระบอกสูบ 8 คือ 15.1

สังเกตว่าตัวดำเนินการไปป์ช่วยให้การตีความโค้ดง่ายขึ้นได้อย่างไร

โดยพื้นฐานแล้วเขาพูดว่า:

  • ใช้กรอบข้อมูล mtcars
  • จัดกลุ่มตามตัวแปร ทรงกระบอก
  • จากนั้นสรุปค่าเฉลี่ยของตัวแปร mpg

ตัวอย่างที่ 2: ใช้ตัวดำเนินการไปป์เพื่อจัดกลุ่มและสรุปหลายตัวแปร

โค้ดต่อไปนี้แสดงวิธีใช้ตัวดำเนินการไปป์ ( %>% ) เพื่อจัดกลุ่มตาม ตัวแปร cyl และ am จากนั้นสรุปค่าเฉลี่ยของตัวแปร mpg และค่าเบี่ยงเบนมาตรฐานของตัวแปร hp :

 library (dplyr)

#summarize mean mpg and standard dev of hp grouped by cyl and am
mtcars %>% 
  group_by(cyl, am) %>% 
  summarize(mean_mpg = mean(mpg),
            sd_hp = sd(hp))

# A tibble: 6 x 4
# Groups: cyl[3]
    cyl am mean_mpg sd_hp
        
1 4 0 22.9 19.7 
2 4 1 28.1 22.7 
3 6 0 19.1 9.18
4 6 1 20.6 37.5 
5 8 0 15.0 33.4 
6 8 1 15.4 50.2 

จากผลลัพธ์เราจะเห็นได้ว่า:

  • สำหรับรถยนต์ที่มีค่ากระบอกสูบ 4 และค่า am 0 ค่า MPG เฉลี่ยคือ 22.9 และค่าเบี่ยงเบนมาตรฐานของค่า HP คือ 19.7
  • สำหรับรถยนต์ที่มีค่ากระบอกสูบ 4 และค่า am 1 ค่า mpg เฉลี่ยคือ 28.1 และค่าเบี่ยงเบนมาตรฐานของค่า hp คือ 22.7

และอื่นๆ

ขอย้ำอีกครั้งว่าตัวดำเนินการไปป์ช่วยให้การตีความโค้ดง่ายขึ้นได้อย่างไร

โดยพื้นฐานแล้วเขาพูดว่า:

  • ใช้กรอบข้อมูล mtcars
  • จัดกลุ่มตามตัวแปร cyl และ am
  • จากนั้นสรุปค่าเฉลี่ยของตัวแปร mpg และค่าเบี่ยงเบนมาตรฐานของตัวแปร hp

ตัวอย่างที่ 3: ใช้ตัวดำเนินการไปป์เพื่อสร้างตัวแปรใหม่

รหัสต่อไปนี้แสดงวิธีใช้ตัวดำเนินการไปป์ ( %>% ) กับฟังก์ชัน กลายพันธุ์ ในแพ็คเกจ dplyr เพื่อสร้างตัวแปรใหม่สองตัวในกรอบข้อมูล mtcars:

 library (dplyr)

#add two new variables in mtcars
new_mtcars <- mtcars %>%
                mutate(mpg2 = mpg*2,
                       mpg_root = sqrt(mpg))

#view first six rows of new data frame
head(new_mtcars)

   mpg cyl disp hp drat wt qsec vs am gear carb mpg2 mpg_root
1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 42.0 4.582576
2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 42.0 4.582576
3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 45.6 4.774935
4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 42.8 4.626013
5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 37.4 4.324350
6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 36.2 4.254409

จากผลลัพธ์เราจะเห็นได้ว่า:

  • คอลัมน์ mpg2 ใหม่มีค่าจากคอลัมน์ mpg คูณด้วย 2
  • คอลัมน์ mpg_root ใหม่มีรากที่สองของค่าในคอลัมน์ mpg

ขอย้ำอีกครั้งว่าตัวดำเนินการไปป์ช่วยให้การตีความโค้ดง่ายขึ้นได้อย่างไร

โดยพื้นฐานแล้วเขาพูดว่า:

  • ใช้กรอบข้อมูล mtcars
  • สร้างคอลัมน์ใหม่ชื่อ mpg2 และคอลัมน์ใหม่ชื่อ mpg_root

ที่เกี่ยวข้อง: วิธีใช้ฟังก์ชัน transmute() ใน dplyr

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีใช้ฟังก์ชันทั่วไปอื่นๆ ใน R:

วิธีใช้ตัวดำเนินการ Tilde (~) ใน R
วิธีใช้ตัวดำเนินการเครื่องหมายดอลลาร์ ($) ใน R
วิธีใช้ตัวดำเนินการ “NOT IN” ใน R
วิธีใช้ตัวดำเนินการ %in% ใน R

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *