วิธีย่อยเฟรมข้อมูลตามรายการค่าใน r
คุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้เพื่อกำหนดย่อยกรอบข้อมูลตามรายการค่าใน R:
วิธีที่ 1: ใช้ Base R
df_new <- df[df$my_column %in% vals,]
วิธีที่ 2: ใช้ dplyr
library (dplyr)
df_new <- filter(df, my_column %in% vals)
วิธีที่ 3: ใช้ data.table
library (data.table)
df_new <- setDT(df, key=' my_column ')[J(vals)]
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับกรอบข้อมูลต่อไปนี้ใน R:
#create data frame
df <- data. frame (team=c('A', 'B', 'B', 'B', 'C', 'C', 'C', 'D'),
points=c(12, 22, 35, 34, 20, 28, 30, 18),
assists=c(4, 10, 11, 12, 12, 8, 6, 10))
#view data frame
df
team points assists
1 to 12 4
2 B 22 10
3 B 35 11
4 B 34 12
5 C 20 12
6 C 28 8
7 C 30 6
8 D 18 10
วิธีที่ 1: ชุดย่อยของกรอบข้อมูลตามรายการค่าในฐาน R
รหัสต่อไปนี้แสดงวิธีตั้งค่าย่อยเฟรมข้อมูลเพื่อให้มีเฉพาะแถวที่มีค่า “A” หรือ “C” ในคอลัมน์ ทีม :
#define values to subset by vals <- c(' A ', ' C ') #subset data frame to only contain rows where team is 'A' or 'C' df_new <- df[df$team %in% vals,] #view results df_new team points assists 1 to 12 4 5 C 20 12 6 C 28 8 7 C 30 6
กรอบข้อมูลผลลัพธ์จะมีเฉพาะแถวที่มีค่า “A” หรือ “C” ในคอลัมน์ ทีม
โปรดทราบว่าเราใช้ฟังก์ชัน R พื้นฐานในตัวอย่างนี้ ดังนั้นเราจึงไม่ต้องโหลดแพ็กเกจเพิ่มเติมใดๆ
วิธีที่ 2: ชุดย่อย Dataframe ตามรายการค่าใน dplyr
รหัสต่อไปนี้แสดงวิธีตั้งค่าย่อยกรอบข้อมูลให้มีเฉพาะแถวที่มีค่า “A” หรือ “C” ในคอลัมน์ ทีม โดยใช้ฟังก์ชัน filter() จากแพ็คเกจ dplyr :
library (dplyr) #define values to subset by vals <- c(' A ', ' C ') #subset data frame to only contain rows where team is 'A' or 'C' df_new <- filter(df, team %in% vals) #view results df_new team points assists 1 to 12 4 5 C 20 12 6 C 28 8 7 C 30 6
กรอบข้อมูลผลลัพธ์จะมีเฉพาะแถวที่มีค่า “A” หรือ “C” ในคอลัมน์ ทีม
วิธีที่ 3: เซ็ตย่อย dataframe ตามรายการค่าใน data.table
รหัสต่อไปนี้แสดงวิธีตั้งค่าย่อยกรอบข้อมูลให้มีเฉพาะแถวที่มีค่า “A” หรือ “C” ในคอลัมน์ ทีม โดยใช้ฟังก์ชันในแพ็คเกจ data.table :
library (data.table) #define values to subset by vals <- c(' A ', ' C ') #subset data frame to only contain rows where team is 'A' or 'C' df_new <- setDT(df, key=' team ')[J(vals)] #view results df_new team points assists 1: A 12 4 2: C 20 12 3: C 28 8 4: C 30 6
กรอบข้อมูลผลลัพธ์จะมีเฉพาะแถวที่มีค่า “A” หรือ “C” ในคอลัมน์ ทีม
ที่เกี่ยวข้อง: วิธีใช้ตัวดำเนินการ %in% ใน R (พร้อมตัวอย่าง)
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการงานทั่วไปอื่นๆ ใน R:
วิธีซับเซ็ตเฟรมข้อมูลตามระดับแฟคเตอร์ใน R
วิธีกำหนดย่อยตามช่วงวันที่ใน R
วิธีการพล็อตเซ็ตย่อยของ data frame ใน R