วิธีใช้ select_if กับหลายเงื่อนไขใน dplyr
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้กับฟังก์ชัน select_if() ของแพ็คเกจ dplyr เพื่อเลือกคอลัมน์ในกรอบข้อมูลที่ตรงตามเงื่อนไขข้อใดข้อหนึ่ง:
df %>% select_if( function (x) condition1 | condition2)
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่างที่ 1: ใช้ select_if() กับประเภทชั้นเรียน
รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน select_if() เพื่อเลือกคอลัมน์ในกรอบข้อมูลที่มี อักขระ หรือประเภท คลาสตัวเลข :
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all character and numeric columns df %>% select_if( function (x) is. character (x) | is. numeric (x)) team points_for points_against 1 A 99 91 2 B 90 80 3 C 86 88 4 D 88 86 5 E 95 93
โปรดทราบว่าคอลัมน์หนึ่งอักขระ ( team ) และคอลัมน์ตัวเลขสองคอลัมน์ ( point_for และ point_against ) จะถูกส่งกลับ ในขณะที่คอลัมน์ปัจจัย ( conference ) จะไม่ถูกส่งกลับ
ตัวอย่างที่ 2: ใช้ select_if() กับประเภทคลาสและชื่อคอลัมน์
รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน select_if() เพื่อเลือกคอลัมน์ในกรอบข้อมูลที่มีประเภท คลาสปัจจัย หรือชื่อคอลัมน์ point_for :
library (dplyr) #create data frame df <- data. frame (team=c('A', 'B', 'C', 'D', 'E'), conference=as. factor (c('W', 'W', 'W', 'E', 'E')), points_for=c(99, 90, 86, 88, 95), points_against=c(91, 80, 88, 86, 93)) #select all factor columns and 'points_for' column df %>% select_if( function (x) is. factor (x) | all(x == .$points_for)) conference points_for 1 W 99 2W 90 3 W 86 4 E 88 5 E 95
โปรดทราบว่าคอลัมน์แบบปัจจัยเดียวและคอลัมน์ที่มีป้ายกำกับ point_for จะถูกส่งกลับ
หมายเหตุ : | สัญลักษณ์คือตัวดำเนินการ “OR” แบบลอจิคัลใน R คุณสามารถใช้ | ได้มากเท่าที่ต้องการ สัญลักษณ์เนื่องจากคุณต้องการเลือกคอลัมน์โดยใช้เงื่อนไขมากกว่าสองเงื่อนไข
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีใช้ฟังก์ชันทั่วไปอื่น ๆ ใน dplyr:
วิธีใช้ฟังก์ชัน cross() ใน dplyr
วิธีใช้ฟังก์ชัน relocate() ใน dplyr
วิธีใช้ฟังก์ชัน Slice() ใน dplyr