كيفية تعيين إطار بيانات فرعيًا حسب قائمة القيم في r
يمكنك استخدام إحدى الطرق التالية لتحديد إطار بيانات فرعيًا من خلال قائمة القيم في R:
الطريقة الأولى: استخدم Base R
df_new <- df[df$my_column %in% vals,]
الطريقة الثانية: استخدم dplyr
library (dplyr)
df_new <- filter(df, my_column %in% vals)
الطريقة الثالثة: استخدام 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
الطريقة الأولى: مجموعة فرعية من إطار البيانات حسب قائمة القيم في قاعدة 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 الأساسية في هذا المثال، لذلك لم نضطر إلى تحميل أي حزم إضافية.
الطريقة الثانية: مجموعة فرعية من 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” في عمود “الفريق” فقط.
الطريقة الثالثة: تعيين إطار البيانات فرعيًا حسب قائمة القيم في 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
كيفية رسم مجموعة فرعية من إطار البيانات في R