ตอบ: ค้นหาคอลัมน์ที่มีค่าสูงสุดสำหรับแต่ละแถว
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาคอลัมน์ที่มีค่าสูงสุดสำหรับแต่ละแถวของกรอบข้อมูลใน 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:
ตอบ: วิธีค้นหาแถวที่ไม่ซ้ำในหลายคอลัมน์
ตอบ: วิธีค้นหาคอลัมน์ที่มีค่าที่หายไปทั้งหมด
ตอบ: วิธีค้นหาค่าที่ไม่ซ้ำในคอลัมน์