ตอบ: ค้นหาคอลัมน์ที่มีค่าสูงสุดสำหรับแต่ละแถว


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

 df$max_col <- colnames(df)[max. col (df, ties.method =' first ')]

โปรดทราบว่าอาร์กิวเมนต์ tie.method=’first’ ระบุว่าควรส่งคืนคอลัมน์สูงสุดคอลัมน์แรกหากมีหลายคอลัมน์ที่มีค่าสูงสุดในแถวที่กำหนด

ค่าอื่น ๆ ที่คุณสามารถระบุให้กับอาร์กิวเมนต์นี้ ได้แก่ Random และ Last หากคุณต้องการส่งคืนคอลัมน์สูงสุดแบบสุ่มหรือคอลัมน์สูงสุดสุดท้ายแทน

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: ค้นหาคอลัมน์ที่มีค่าสูงสุดสำหรับแต่ละแถวใน R

สมมติว่าเรามีกรอบข้อมูลต่อไปนี้ใน R ซึ่งมีข้อมูลเกี่ยวกับจำนวนคะแนนที่ผู้เล่นบาสเกตบอล 6 คนทำคะแนนได้ตลอดระยะเวลาสามเกม:

 #create data frame
df <- data. frame (game1=c(23, 20, 14, 12, 19, 15),
                 game2=c(9, 10, 11, 13, 13, 15),
                 game3=c(29, 11, 22, 19, 14, 15))

#view data frame
df

  game1 game2 game3
1 23 9 29
2 20 10 11
3 14 11 22
4 12 13 19
5 19 13 14
6 15 15 15

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

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อทำสิ่งนี้:

 #create new column that contains column with max value for each row
df$max_col <- colnames(df)[max. col (df, ties.method =' first ')]

#view updated data frame
df

  game1 game2 game3 max_col
1 23 9 29 game3
2 20 10 11 game1
3 14 11 22 game3
4 12 13 19 game3
5 19 13 14 game1
6 15 15 15 game1

คอลัมน์ใหม่ชื่อ max_col มีชื่อของคอลัมน์ที่มีค่าสูงสุดในแต่ละแถว

ตัวอย่างเช่น:

  • ในบรรทัดแรก game3 มีค่าสูงสุด
  • ในบรรทัดที่สอง game1 มีค่าสูงสุด
  • ในบรรทัดที่สาม game3 มีค่าสูงสุด

และอื่นๆ

โปรดทราบว่าแต่ละคอลัมน์ในแถวสุดท้ายมีค่าเท่ากัน

เนื่องจากเราระบุ tie.method=’first’ ในฟังก์ชัน max.col() โค้ดจึงส่งคืน game1 เป็นคอลัมน์ที่มีค่าสูงสุดเนื่องจากเป็นคอลัมน์สูงสุดคอลัมน์แรก

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

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

ตอบ: วิธีค้นหาแถวที่ไม่ซ้ำในหลายคอลัมน์
ตอบ: วิธีค้นหาคอลัมน์ที่มีค่าที่หายไปทั้งหมด
ตอบ: วิธีค้นหาค่าที่ไม่ซ้ำในคอลัมน์

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

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