วิธีเลือกค่า n แรกตามกลุ่มใน r


คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อเลือกค่า N สูงสุดตามกลุ่มใน R:

วิธีที่ 1: เลือกค่า N แรกต่อกลุ่ม (ละเว้นความสัมพันธ์)

 library (dplyr)

#select top 5 values by group
df %>% 
  arrange(desc(values_column)) %>% 
  group_by(group_column) %>%
  slice(1:5)

วิธีที่ 2: เลือกค่า N แรกตามกลุ่ม (รวมความสัมพันธ์)

 library (dplyr)

#select top 5 values by group
df %>%
  group_by(group_column) %>%
  top_n(5, values_column)

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

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 points=c(19, 22, 15, NA, 14, 25, 25, 25),
                 rebounds=c(10, 6, 3, 7, 11, 13, 9, 12))

#view data frame
df

  team points rebounds
1 A 19 10
2 to 22 6
3 to 15 3
4 A NA 7
5 B 14 11
6 B 25 13
7 B 25 9
8 B 25 12

ตัวอย่างที่ 1: เลือกค่า N แรกต่อกลุ่ม (ละเว้นความสัมพันธ์)

รหัสต่อไปนี้แสดงวิธีการเลือก 2 แถวแรกที่มีค่าคะแนนสูงสุด โดยจัดกลุ่มตามทีม:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>% 
  arrange(desc(points)) %>% 
  group_by(team) %>%
  slice(1:2)

# A tibble: 4 x 3
# Groups: team [2]
  team points rebounds
        
1 to 22 6
2 A 19 10
3 B 25 13
4 B 25 9

ผลการแข่งขันมี 2 แถวที่มีคะแนนสูงสุดของแต่ละทีม

โปรดทราบว่าสำหรับทีม B จริงๆ แล้วมีสามแถวที่เชื่อมโยงกับค่าสูงสุดของจุด ( 25 ) แต่จะส่งคืนเพียงสองแถวในเอาต์พุต

วิธีนี้จะละเว้นลิงก์ต่างๆ

ตัวอย่างที่ 2: เลือกค่า N แรกต่อกลุ่ม (รวมความสัมพันธ์)

รหัสต่อไปนี้แสดงวิธีการเลือก 2 แถวแรกที่มีค่าคะแนนสูงสุด โดยจัดกลุ่มตามทีม:

 library (dplyr)

#select top 2 rows with highest points values, grouped by team 
df %>%
  group_by(team) %>%
  top_n(2, dots)

# A tibble: 5 x 3
# Groups: team [2]
  team points rebounds
        
1 A 19 10
2 to 22 6
3 B 25 13
4 B 25 9
5 B 25 12

ผลการแข่งขันมี 2 แถวที่มีคะแนนสูงสุดของแต่ละทีม

โปรดทราบว่าสำหรับทีม B นั้น เส้นสามเส้นเสมอกันสำหรับค่าแต้มสูงสุด ( 25 ) ดังนั้นวิธีนี้จึงรวมสามบรรทัดนั้นไว้ในผลลัพธ์สุดท้าย

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

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

วิธีเลือกแถวที่มีค่าปรากฏในคอลัมน์ใด ๆ ใน R
วิธีเลือกคอลัมน์เฉพาะใน R
วิธีเลือกคอลัมน์ตามดัชนีใน R

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

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