วิธีใช้ 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

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

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