วิธีการใช้ฟังก์ชันใดใน r (พร้อมตัวอย่าง)


ฟังก์ชัน which() ใน R ส่งคืนตำแหน่งขององค์ประกอบในเวกเตอร์เชิงตรรกะที่เป็น TRUE

บทช่วยสอนนี้มีตัวอย่างการใช้งานฟังก์ชันนี้ในทางปฏิบัติหลายตัวอย่าง

ตัวอย่างที่ 1: ค้นหาองค์ประกอบในเวกเตอร์

รหัสต่อไปนี้แสดงวิธีการค้นหาตำแหน่งขององค์ประกอบทั้งหมดของเวกเตอร์เท่ากับ 5:

 #create data
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find the position of all elements equal to 5
which (data == 5)

[1] 8 9

เราจะเห็นว่าองค์ประกอบในตำแหน่ง 8 และ 9 ในเวกเตอร์มีค่าเท่ากับค่า 5

นอกจากนี้เรายังสามารถค้นหาตำแหน่งขององค์ประกอบทั้งหมดของเวกเตอร์ที่ ไม่ เท่ากับ 5:

 #find the position of all elements not equal to 5
which (data != 5)

[1] 1 2 3 4 5 6 7 10

นอกจากนี้เรายังสามารถค้นหาว่าองค์ประกอบใดอยู่ระหว่างสองค่าหรืออยู่นอกสองค่า:

 #find the position of all elements with values between 2 and 4
which (data >= 2 & data <= 4)

[1] 2 3 4 5 6 7

#find the position of all elements with values outside of 2 and 4
which (data < 2 | data > 4)

[1] 1 8 9 10

ตัวอย่างที่ 2: การนับจำนวนครั้งในเวกเตอร์

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน length() เพื่อค้นหาจำนวนองค์ประกอบในเวกเตอร์ที่มากกว่าค่าที่กำหนด:

 #createdata
data <- c(1, 2, 2, 3, 4, 4, 4, 5, 5, 12)

#find number of elements greater than 4
length ( which (data > 4))

[1] 3

เราจะเห็นได้ว่ามี 3 องค์ประกอบในเวกเตอร์นี้ที่มีค่ามากกว่า 4

ตัวอย่างที่ 3: ค้นหาแถวในกรอบข้อมูล

รหัสต่อไปนี้แสดงวิธีการส่งคืนแถวในกรอบข้อมูลที่มีค่าสูงสุดหรือต่ำสุดในบางคอลัมน์:

 #create data frame
df <- data. frame (x = c(1, 2, 2, 3, 4, 5),
                 y = c(7, 7, 8, 9, 9, 9),
                 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

  X Y Z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return row that contains the max value in column x
df[ which . max (df$x), ]

  X Y Z
6 5 9 F

#return row that contains the min value in column x
df[ which . min (df$x), ]

  X Y Z
1 1 7 A

ตัวอย่างที่ 4: เซ็ตย่อยตามแถวในกรอบข้อมูล

รหัสต่อไปนี้แสดงวิธีการแบ่งย่อยกรอบข้อมูลออกเป็นแถวที่ตรงตามเกณฑ์ที่กำหนด:

 #create data frame
df <- data. frame (x = c(1, 2, 2, 3, 4, 5),
                 y = c(7, 7, 8, 9, 9, 9),
                 z = c('A', 'B', 'C', 'D', 'E', 'F'))

#view data frame
df

  X Y Z
1 1 7 A
2 2 7 B
3 2 8 C
4 3 9 D
5 4 9 E
6 5 9 F

#return subset of data frame where values in column y are greater than 8
df[ which (df$y > 8), ]

  X Y Z
4 3 9 D
5 4 9 E
6 5 9 F

ค้นหาบทช่วยสอน R เพิ่มเติมใน หน้านี้

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

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