ตอบ: วิธีใช้ฟังก์ชัน which() กับหลายเงื่อนไข


คุณสามารถใช้วิธีต่อไปนี้เพื่อใช้ฟังก์ชัน which() กับเงื่อนไขหลายข้อใน R:

วิธีที่ 1: which() มีหลายเงื่อนไขโดยใช้ AND

 new_df <- df[which(df$my_column >= 14 & df$my_column <= 25), ]

วิธีที่ 2: which() มีหลายเงื่อนไขโดยใช้ OR

 new_df <- df[which(df$my_column < 14 | df$my_column > 25), ] 

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้:

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'),
                 points=c(10, 13, 13, 15, 19, 22, 24, 25, 29, 35))

#view data frame
df

   player points
1 to 10
2 B 13
3 C 13
4 D 15
5 E 19
6 F 22
7 G 24
8:25 a.m.
9 I 29
10 D 35

ตัวอย่างที่ 1: which() มีหลายเงื่อนไขโดยใช้ AND

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน which() เพื่อกรองกรอบข้อมูลให้มีเฉพาะแถวที่มีค่าในคอลัมน์ จุด มากกว่าหรือเท่ากับ 14 และ น้อยกว่าหรือเท่ากับ 25:

 #filter for players who score between 14 and 25 points
new_df <- df[which(df$points >= 14 & df$points <= 25), ]

#view results
new_df

  player points
4 D 15
5 E 19
6 F 22
7 G 24
8:25 a.m.

โปรดทราบว่ากรอบข้อมูลถูกกรองเพื่อให้มีเฉพาะแถวที่มีค่าในคอลัมน์ คะแนน มากกว่าหรือเท่ากับ 14 และ น้อยกว่าหรือเท่ากับ 25

โปรดทราบว่าตัวดำเนินการ & ถูกใช้เป็นคำสั่ง “และ” ใน R

ตัวอย่างที่ 2: which() มีหลายเงื่อนไขโดยใช้ OR

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน which() เพื่อกรองกรอบข้อมูลให้มีเฉพาะแถวที่มีค่าในคอลัมน์ จุด น้อยกว่า 14 หรือ มากกว่า 25:

มิฉะนั้นจะกำหนดค่า “ไม่ดี”:

 #filter for players who score less than 14 or greater than 25 points
new_df <- df[which(df$points < 14 | df$points > 25), ]

#view results
new_df

   player points
1 to 10
2 B 13
3 C 13
9 I 29
10 D 35

โปรดทราบว่ากรอบข้อมูลถูกกรองเพื่อให้มีเฉพาะแถวที่มีค่าในคอลัมน์ คะแนน น้อยกว่า 14 หรือ มากกว่า 25

โปรดทราบว่า | ตัวดำเนินการถูกใช้เป็นคำสั่ง “หรือ” ใน R

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

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

วิธีใช้คำสั่ง If ที่มีหลายเงื่อนไขใน R
วิธีเขียนคำสั่ง If Else แบบซ้อนใน R
วิธีเขียน For loop แบบซ้อนใน R

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

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