ج: كيفية طي النص حسب المجموعة في إطار البيانات
يمكنك استخدام الطرق التالية لطي النص حسب المجموعة في إطار بيانات في R:
الطريقة الأولى: تقليل النص حسب المجموعة باستخدام Base R
aggregate(text_var ~ group_var, data=df, FUN=paste, collapse='')
الطريقة الثانية: تقليل النص حسب المجموعة باستخدام dplyr
library (dplyr)
df %>%
group_by(group_var) %>%
summarize(text=paste(text_var, collapse=''))
الطريقة الثالثة: تقليل النص حسب المجموعة باستخدام data.table
library (data.table) dt <- as. data . table (df) dt[, list(text_var=paste(text_var, collapse='')), by=group_var]
يشرح هذا البرنامج التعليمي كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B'),
position=c('Guard', 'Guard', 'Forward',
'Guard', 'Forward', 'Center'))
#view data frame
df
team position
1A Guard
2 A Guard
3 A Forward
4 B Guard
5B Forward
6B Center
مثال 1: تقليل النص حسب المجموعة باستخدام Base R
يوضح التعليمة البرمجية التالية كيفية تقليل نص عمود الموضع ، مجمعًا حسب عمود الفريق باستخدام وظيفة Aggregate() في قاعدة بيانات R:
#collapse position values by team
aggregate(position ~ team, data=df, FUN=paste, collapse='')
team position
1A GuardGuardForward
2 B GuardForwardCenter
لاحظ أن كل قيمة من القيم النصية في عمود الموضع قد تم طيها إلى قيمة واحدة، مجمعة حسب القيم الموجودة في عمود الفريق .
مثال 2: تقليل النص حسب المجموعة باستخدام dplyr
يوضح التعليمة البرمجية التالية كيفية طي النص في عمود الموضع ، مجمعًا حسب عمود الفريق باستخدام الدالة summarise() من الحزمة dplyr:
library (dplyr) #collapse position values by team df %>% group_by(group_var) %>% summarize(text=paste(text_var, collapse='')) # A tibble: 2 x 2 team text 1A GuardGuardForward 2 B GuardForwardCenter
لاحظ أن كل قيمة من القيم النصية في عمود الموضع قد تم طيها إلى قيمة واحدة، مجمعة حسب القيم الموجودة في عمود الفريق .
مثال 3: تقليل النص حسب المجموعة باستخدام data.table
يوضح التعليمة البرمجية التالية كيفية طي النص في عمود ” المنصب “، مجمعة حسب عمود “الفريق ” باستخدام الوظائف الموجودة في حزمة data.table:
library (data.table) #convert data frame to data table dt <- as. data . table (df) #collapse position values by team dt[, list(text_var=paste(text_var, collapse='')), by=group_var] team position 1: A GuardGuardForward 2: B GuardForwardCenter
تم طي كل قيمة من القيم النصية في عمود الموضع إلى قيمة واحدة، مجمعة حسب القيم الموجودة في عمود الفريق .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية تحديد الأعمدة التي تحتوي على سلسلة محددة في R
كيفية إزالة الأحرف من سلسلة في R
كيفية العثور على موقع الحرف في سلسلة في R