كيفية استخدام الدالة melt() في r


يمكنك استخدام وظيفة الذوبان () لحزمة reshape2 في R لتحويل إطار البيانات من تنسيق واسع إلى تنسيق طويل.

يحتوي التنسيق الواسع على قيم غير مكررة في العمود الأول.

يحتوي التنسيق الطويل على قيم تتكرر في العمود الأول.

على سبيل المثال، ضع في اعتبارك مجموعتي البيانات التاليتين اللتين تحتويان على نفس البيانات تمامًا معبرًا عنها بتنسيقات مختلفة:

تنسيق بيانات واسع أو طويل

تستخدم الدالة Melt() الصيغة الأساسية التالية لتحويل إطار بيانات واسع التنسيق إلى تنسيق طويل:

 melt(df, id=' team ')

تحدد وسيطة المعرف المتغير الذي سيتم استخدامه كعمود أول في إطار البيانات الذي سيتم تكرار قيمه.

يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.

مثال: كيفية استخدام Melt() في R

لنفترض أن لدينا إطار البيانات التالي في R والذي هو حاليًا بتنسيق واسع:

 #create data frame in wide format
df <- data. frame (team=c('A', 'B', 'C', 'D'),
                 dots=c(88, 91, 99, 94),
                 assists=c(12, 17, 24, 28),
                 rebounds=c(22, 28, 30, 31))

#view data frame
df

  team points assists rebounds
1 A 88 12 22
2 B 91 17 28
3 C 99 24 30
4 D 94 28 31

يمكننا استخدام الدالة Melt() لتحويل إطار البيانات بسرعة إلى تنسيق طويل:

 library (reshape2)

#use melt() to convert data frame from wide to long format
long_df <- melt(df, id=' team ')

#view long data frame
long_df

   team variable value
1 A points 88
2 B points 91
3 C points 99
4 D points 94
5 A assists 12
6 B assists 17
7 C assists 24
8 D assists 28
9 A rebounds 22
10 B rebounds 28
11 C rebounds 30
12 D rebounds 31

لاحظ أن إطار البيانات أصبح الآن بتنسيق طويل.

تم ضغط أعمدة النقاط والتمريرات والمرتدات جميعها في عمود واحد يسمى المتغير بينما تم ضغط قيمها جميعها في عمود واحد يسمى القيم .

لا تتردد في إعادة تسمية أعمدة إطار البيانات الناتج باستخدام وظيفة الأسماء () :

 #rename columns in long_df
names(long_df) <- c(' team ', ' metric ', ' amount ')

#view updated data frame
long_df

   team metric amount
1 A points 88
2 B points 91
3 C points 99
4 D points 94
5 A assists 12
6 B assists 17
7 C assists 24
8 D assists 28
9 A rebounds 22
10 B rebounds 28
11 C rebounds 30
12 D rebounds 31

لاحظ أنه تمت إعادة تسمية الأعمدة.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:

كيفية تصفية الصفوف في R
كيفية نقل إطار البيانات إلى R
كيفية إعادة تسمية أعمدة إطار البيانات في R

Add a Comment

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