كيفية تحويل قائمة إلى متجه في لغة r (مع أمثلة)
يمكنك استخدام أي من الطرق التالية لتحويل قائمة إلى متجه في R:
#use unlist() function new_vector <- unlist(my_list, use. names = FALSE ) #use flatten_*() function from purrr library new_vector <- purrr::flatten(my_list)
توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع القائمة التالية:
#create list my_list <- list(A = c(1, 2, 3), B = c(4, 5), C = 6) #display list my_list $A [1] 1 2 3 $B [1] 4 5 $C [1] 6
المثال 1: تحويل قائمة إلى متجه باستخدام الدالة unlist()
يوضح الكود التالي كيفية تحويل القائمة إلى متجه باستخدام الدالة unlist() :
#convert list to vector new_vector <- unlist(my_list) #display vector new_vector A1 A2 A3 B1 B2 C 1 2 3 4 5 6
لاحظ أنه يمكنك تحديد use.names = FALSE لإزالة الأسماء من المتجه:
#convert list to vector new_vector <- unlist(my_list, use. names = FALSE ) #display vector new_vector [1] 1 2 3 4 5 6
المثال 2: تحويل قائمة إلى متجه باستخدام الدالة flatten_*
يوضح التعليمة البرمجية التالية كيفية تحويل قائمة إلى متجه باستخدام مجموعة الدوال flatten_* من الحزمة purrr :
library (purrr) #convert list to vector new_vector <- flatten_dbl(my_list) #display vector new_vector [1] 1 2 3 4 5 6
تقوم الدالة flatten_dbl() بتحويل القائمة على وجه التحديد إلى متجه من النوع double.
لاحظ أنه يمكننا استخدام flatten_chr() لتحويل قائمة الأحرف إلى متجه الأحرف:
library (purrr) #define character list my_char_list <- list(A = c('a', 'b', 'c'), B = c('d', 'e'), C = 'f') #convert character list to character vector new_char_vector <- flatten_chr(my_char_list) #display vector new_char_vector [1] "a" "b" "c" "d" "e" "f"
راجع هذه الصفحة للحصول على قائمة كاملة بمجموعة وظائف flatten_*.
ملاحظة: إذا كنت تعمل مع قائمة طويلة جدًا، فستعمل الدالات flatten_* بشكل أسرع من الدالة unlist() الأساسية في R.
مصادر إضافية
كيفية تحويل قائمة إلى إطار بيانات في R
كيفية تحويل المصفوفة إلى متجه في R
كيفية تحويل عمود إطار البيانات إلى ناقل في R