كيفية تقسيم إطار البيانات في لغة r (مع أمثلة)
يمكنك استخدام إحدى الطرق الثلاث التالية لتقسيم إطار البيانات إلى عدة كتل بيانات أصغر في R:
الطريقة الأولى: تقسيم إطار البيانات يدويًا استنادًا إلى قيم الصف
#define first n rows to include in first data frame n <- 4 #split data frame into two smaller data frames df1 <- df[row. names (df) %in% 1:n, ] df2 <- df[row. names (df) %in% (n+1):nrow(df), ]
الطريقة الثانية: تقسيم إطار البيانات إلى إطارات بيانات n متساوية الحجم
#define number of data frames to split into n <- 3 #split data frame into n equal-sized data frames split(df, factor(sort(rank(row. names (df)) %% n)))
الطريقة الثالثة: تقسيم إطار البيانات بناءً على قيمة العمود
#split data frame based on particular column value df1 <- df[df$column_name == 0, ] df2 <- df[df$column_name != 0, ]
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:
#create data frame df <- data. frame (ID=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), sales=c(7, 8, 8, 7, 9, 7, 8, 9, 3, 3, 14, 10), leads=c(0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0)) #view data frame df Sales lead ID 1 1 7 0 2 2 8 0 3 3 8 1 4 4 7 1 5 5 9 0 6 6 7 1 7 7 8 1 8 8 9 0 9 9 3 1 10 10 3 0 11 11 14 1 12 12 10 0
الطريقة الأولى: تقسيم إطار البيانات يدويًا استنادًا إلى قيم الصف
يوضح التعليمة البرمجية التالية كيفية تقسيم إطار البيانات إلى كتلتين أصغر من البيانات، تحتوي الأولى على الأسطر من 1 إلى 4 والثانية تحتوي على الأسطر من 5 إلى السطر الأخير:
#define row to split on
n <- 4
#split into two data frames
df1 <- df[row. names (df) %in% 1:n, ]
df2 <- df[row. names (df) %in% (n+1):nrow(df), ]
#view resulting data frames
df1
Sales lead ID
1 1 7 0
2 2 8 0
3 3 8 1
4 4 7 1
df2
Sales lead ID
5 5 9 0
6 6 7 1
7 7 8 1
8 8 9 0
9 9 3 1
10 10 3 0
11 11 14 1
12 12 10 0
الطريقة الثانية: تقسيم إطار البيانات إلى إطارات بيانات n متساوية الحجم
يوضح التعليمة البرمجية التالية كيفية تقسيم إطار البيانات إلى إطارات بيانات n متساوية الحجم:
#define number of data frames to split into n <- 3 #split data frame into n equal-sized data frames split(df, factor(sort(rank(row. names (df)) %% n))) $`0` Sales lead ID 1 1 7 0 2 2 8 0 3 3 8 1 4 4 7 1 $`1` Sales lead ID 5 5 9 0 6 6 7 1 7 7 8 1 8 8 9 0 $`2` Sales lead ID 9 9 3 1 10 10 3 0 11 11 14 1 12 12 10 0
والنتيجة هي ثلاثة إطارات بيانات متساوية الحجم.
الطريقة الثالثة: تقسيم إطار البيانات بناءً على قيمة العمود
يوضح التعليمة البرمجية التالية كيفية تقسيم إطار البيانات إلى إطارين للبيانات بناءً على قيمة عمود معين:
#split data frame based on particular column value df1 <- df[df$leads == 0, ] df2 <- df[df$leads != 0, ] #view resulting data frames df1 Sales lead ID 1 1 7 0 2 2 8 0 5 5 9 0 8 8 9 0 10 10 3 0 12 12 10 0 df2 Sales lead ID 3 3 8 1 4 4 7 1 6 6 7 1 7 7 8 1 9 9 3 1 11 11 14 1
لاحظ أن df1 يحتوي على كافة الصفوف حيث كانت “العملاء المتوقعون” تساوي صفرًا في إطار البيانات الأصلي وأن df2 يحتوي على جميع الصفوف حيث كانت “العملاء المتوقعون” مساوية لواحد في إطار البيانات الأصلي.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في R:
كيفية دمج إطارات بيانات متعددة في R
كيفية تكديس أعمدة إطار البيانات في R
كيفية إضافة عمود إلى إطار البيانات بناءً على أعمدة أخرى في R