วิธีใช้ฟังก์ชัน all() และ any() ใน r (พร้อมตัวอย่าง)
ฟังก์ชัน all() และ any() ใน R สามารถใช้เพื่อตรวจสอบว่าค่าทั้งหมดหรือบางค่าในเวกเตอร์ประเมินค่าเป็น TRUE สำหรับนิพจน์หรือไม่
ฟังก์ชันเหล่านี้ใช้ไวยากรณ์ต่อไปนี้:
#check if all values in x are less than 10
all(x < 10)
#check if any values in x are less than 10
any(x < 10)
ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละฟังก์ชันในทางปฏิบัติ
ตัวอย่างที่ 1: ใช้ all() และ any() กับ Vector
เราสามารถใช้ฟังก์ชัน all() และ any() ต่อไปนี้เพื่อตรวจสอบว่าค่าบางส่วนหรือทั้งหมดในเวกเตอร์มีค่าน้อยกว่า 10:
#define vector of data values
data <- c(3, 4, 4, 8, 12, 15)
#check if all values are less than 10
all(data < 10)
[1] FALSE
#check if any values are less than 10
any(data < 10)
[1] TRUE
ฟังก์ชัน all() ประเมินเป็น FALSE เนื่องจากค่าทั้งหมดในเวกเตอร์ไม่น้อยกว่า 10
ฟังก์ชัน any() ประเมินค่าเป็น TRUE เนื่องจากค่าอย่างน้อยหนึ่งค่าในเวกเตอร์มีค่าน้อยกว่า 10
ตัวอย่างที่ 2: ใช้ all() กับค่า NA
หากเราใช้ฟังก์ชัน all() กับเวกเตอร์ที่มีค่า NA เราจะสามารถรับ NA ได้ดังนี้:
#define vector of data values with some NA values
data <- c(3, 4, 4, 8, NA, NA)
#check if all values are less than 10
all(data < 10)
[1] NA
เพื่อหลีกเลี่ยงปัญหานี้ เราจำเป็นต้องระบุ na.rm=TRUE เพื่อลบค่า NA ออกจากเวกเตอร์ก่อน ก่อนที่จะตรวจสอบว่าค่าทั้งหมดตรงตามเงื่อนไขหรือไม่:
#define vector of data values with some NA values
data <- c(3, 4, 4, 8, NA, NA)
#check if all values are less than 10 (and ignore NA values)
all(data < 10, na. rm = TRUE )
[1] TRUE
ขณะนี้ฟังก์ชัน all() ประเมินค่าเป็น TRUE เนื่องจากแต่ละค่าในเวกเตอร์น้อยกว่า 10 โดยสมมติว่าเราละเว้นค่า NA
ตัวอย่างที่ 3: ใช้ all() และ any() กับคอลัมน์กรอบข้อมูล
นอกจากนี้เรายังสามารถใช้ฟังก์ชัน all() และ any() เพื่อประเมินนิพจน์ของคอลัมน์กรอบข้อมูล
ตัวอย่างเช่น สมมติว่าเรามี data frame ต่อไปนี้ใน R:
#define data frame
df <- data. frame (points=c(30, 22, 19, 20, 14, NA),
assists=c(7, 8, 13, 13, 10, 6),
rebounds=c(8, 12, NA, NA, 5, 8))
#view data frame
df
points assists rebounds
1 30 7 8
2 22 8 12
3 19 13 NA
4 20 13 NA
5 14 10 5
6 NA 6 8
เราสามารถใช้ฟังก์ชัน all() และ any() เพื่อประเมินนิพจน์ต่างๆ สำหรับค่าในคอลัมน์ “bounces”:
#check if all values are less than 10 in rebounds column
all(df$rebounds < 10, na. rm = TRUE )
[1] FALSE
#check if any values are less than 10 in rebounds column
any(df$rebounds < 10, na. rm = TRUE )
[1] TRUE
#check if there are any NA values in rebounds column
any(is. na (df$rebounds))
[1] TRUE
จากผลลัพธ์เราจะเห็นได้ว่า:
- ค่าทั้งหมดไม่ต่ำกว่า 10 ในคอลัมน์ตีกลับ
- อย่างน้อยหนึ่งค่าน้อยกว่า 10 ในคอลัมน์รีบาวด์
- มีค่า NA อย่างน้อยหนึ่งค่าในคอลัมน์การรีบาวด์
ที่เกี่ยวข้อง: วิธีใช้ is.na ใน R (พร้อมตัวอย่าง)
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีเพิ่มคอลัมน์ใน data frame ใน R
วิธีเพิ่มคอลัมน์ว่างลงใน data frame ใน R
วิธีจัดเรียง data frame ตามคอลัมน์ใน R