A: วิธีค้นหาแถวแรกที่ตรงตามเกณฑ์


คุณสามารถใช้วิธีการต่อไปนี้เพื่อค้นหาแถวแรกของกรอบข้อมูลใน R ที่ตรงตามเกณฑ์เฉพาะ:

วิธีที่ 1: ค้นหาแถวแรกที่ตรงกับเกณฑ์

 #get first row where value in 'team' column is equal to 'B'
df[which(df$team == ' B ', arr. ind = TRUE )[1],]

วิธีที่ 2: ค้นหาแถวแรกที่ตรงกับเกณฑ์หลายข้อ

 #get first row where 'points' column > 15 and 'assists' column > 10
df[which(df$points>15 & df$assists>10, arr. ind = TRUE )[1],]

วิธีที่ 3: ค้นหาแถวแรกที่ตรงกับเกณฑ์ข้อใดข้อหนึ่ง

 #get first row where 'points' column > 15 or 'assists' column > 10
df[which(df$points>15 | df$assists>10, arr. ind = TRUE )[1],]

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(18, 13, 19, 14, 24, 21, 20, 28),
                 assists=c(5, 7, 17, 9, 12, 9, 5, 12))

#view data frame
df

  team points assists
1 to 18 5
2 to 13 7
3 A 19 17
4 B 14 9
5 B 24 12
6 C 21 9
7 C 20 5
8 C 28 12

ตัวอย่างที่ 1: ค้นหาแถวแรกที่ตรงตามเกณฑ์

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาแถวแรกที่ค่าในคอลัมน์ ทีม เท่ากับ “B”:

 #find first row where team is equal to 'B'
df[which(df$team == ' B ', arr. ind = TRUE )[1],] 

  team points assists
4 B 14 9

เราจะเห็นว่าแถวแรกที่ค่าในคอลัมน์ ทีม เท่ากับ “B” คือแถวที่สี่ในกรอบข้อมูล

ตัวอย่างที่ 2: ค้นหาแถวแรกที่ตรงกับเกณฑ์หลายข้อ

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาแถวแรกที่ค่าในคอลัมน์ คะแนน มากกว่า 15 และค่าในคอลัมน์ ช่วยเหลือ มากกว่า 10:

 #find first row where points > 15 and assists > 10
df[which(df$points>15 & df$assists>10, arr. ind = TRUE )[1],] 

  team points assists
3 A 19 17

เราจะเห็นว่าแถวแรกที่ค่าในคอลัมน์ จุด มากกว่า 15 และค่าในคอลัมน์ ช่วยเหลือ มากกว่า 10 คือแถวที่สามของกรอบข้อมูล

ตัวอย่างที่ 3: ค้นหาแถวแรกที่ตรงกับเกณฑ์ข้อใดข้อหนึ่งจากหลายเกณฑ์

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาแถวแรกที่ค่าในคอลัมน์ คะแนน มากกว่า 15 หรือค่าในคอลัมน์ ช่วยเหลือ มากกว่า 10:

 #find first row where points > 15 or assists > 10
df[which(df$points>15 | df$assists>10, arr. ind = TRUE )[1],]

  team points assists
1 to 18 5

เราจะเห็นว่าแถวแรกที่ค่าในคอลัมน์ จุด มากกว่า 15 หรือค่าในคอลัมน์ ช่วยเหลือ มากกว่า 10 คือแถวแรกของกรอบข้อมูล

หมายเหตุ : & และ | ตัวดำเนินการแทน “และ” และ “หรือ” ใน R ตามลำดับ

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

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

วิธีค้นหาค่าสูงสุดในแต่ละแถวใน R
วิธีการคำนวณค่ามัธยฐานของแถวใน R
วิธีค้นหาแถวที่ไม่ซ้ำในหลายคอลัมน์ใน R

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

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