ตอบ: วิธีใช้ฟังก์ชัน 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