كيفية تحويل قائمة إلى إطار بيانات في r


هناك العديد من الحالات التي قد ترغب فيها في تحويل قائمة إلى إطار بيانات في R. يشرح هذا البرنامج التعليمي ثلاث طرق مختلفة للقيام بذلك.

الطريقة الأولى: تعتمد على R

يوضح مقتطف التعليمات البرمجية التالي كيفية تحويل قائمة إلى إطار بيانات باستخدام قاعدة R فقط:

 #create list
my_list <- list(letters[1:5], letters[6:10])
my_list

[[1]]
[1] "a" "b" "c" "d" "e"

[[2]]
[1] "f" "g" "h" "i" "j"

#convert list to data frame
data.frame(t(sapply(my_list,c)))

  X1 X2 X3 X4 X5
1 abcde
2 fghij

في هذا المثال، يقوم sapply بتحويل القائمة إلى مصفوفة، ثم يقوم data.frame بتحويل المصفوفة إلى إطار بيانات. والنتيجة النهائية هي إطار بيانات مكون من صفين وخمسة أعمدة.

الطريقة الثانية: جدول البيانات

يوضح مقتطف التعليمات البرمجية التالي كيفية تحويل قائمة من قائمتين متداخلتين إلى إطار بيانات يحتوي على صفين وثلاثة أعمدة باستخدام وظيفة rbindlist الخاصة بمكتبة data.table :

 #load data.table library
library(data.table)

#create list
my_list <- list(a = list(var1 = 1, var2 = 2, var3 = 3),
                b = list(var1 = 4, var2 = 5, var3 = 6))
my_list 

$a
$a$var1
[1] 1

$a$var2
[1] 2

$a$var3
[1] 3

$b
$b$var1
[1] 4

$b$var2
[1] 5

$b$var3
[1] 6

#convert list to data frame
rbindlist(my_list)

   var1 var2 var3
1:1 2 3
2:4 5 6

وينتج عن ذلك جدول بيانات يتكون من صفين وثلاثة أعمدة. إذا كنت تريد تحويل جدول البيانات هذا إلى إطار بيانات، فيمكنك ببساطة استخدام as.data.frame(DT) .

تقوم هذه الطريقة بتحويل القائمة إلى إطار بيانات بشكل أسرع من الطريقة السابقة إذا كنت تعمل مع مجموعة بيانات كبيرة جدًا.

الطريقة الثالثة: Dplyr

يوضح مقتطف التعليمات البرمجية التالي كيفية تحويل قائمة من قائمتين متداخلتين إلى إطار بيانات يحتوي على صفين وثلاثة أعمدة باستخدام وظيفة bind_rows في مكتبة dplyr :

 #loadlibrary
library(dplyr)

#create list
my_list <- list(a = list(var1 = 1, var2 = 2, var3 = 3),
                b = list(var1 = 4, var2 = 5, var3 = 6))

my_list

$a
$a$var1
[1] 1

$a$var2
[1] 2

$a$var3
[1] 3


$b
$b$var1
[1] 4

$b$var2
[1] 5

$b$var3
[1] 6

#convert list to data frame
bind_rows(my_list)

# A tibble: 2 x 3
   var1 var2 var3
    
1 1 2 3
2 4 5 6

وينتج عن هذا إطار بيانات مكون من صفين وثلاثة أعمدة.

تميل هذه الطريقة أيضًا إلى الأداء بشكل أسرع من قاعدة R عند العمل مع مجموعات بيانات كبيرة.

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *