كيفية استخدام الدالتين with() و inside() في r


يمكن استخدام الدالتين with() و inside() في R لتقييم تعبير يعتمد على إطار البيانات.

تستخدم هذه الوظائف بناء الجملة التالي:

 with(data, expression)
within(data, expression)

ذهب:

  • البيانات: اسم كتلة البيانات
  • التعبير: التعبير للتقييم

وهنا الفرق بين الوظيفتين:

  • مع () يقوم بتقييم التعبير دون تعديل إطار البيانات الأصلي.
  • inside() يقوم بتقييم التعبير وإنشاء نسخة من إطار البيانات الأصلي.

توضح الأمثلة التالية كيفية استخدام كل وظيفة عمليًا مع إطار البيانات التالي:

 #create data frame
df <- data. frame (x=c(3, 5, 5, 7, 6, 10),
                 y=c(2, 2, 0, 5, 9, 4))

#view data frame
df

   xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4

مثال 1: استخدام الدالة with()

يمكننا استخدام الدالة with() التالية لضرب القيم بين عمودين في إطار البيانات:

 #multiply values between x and y
with(df, x*y)

[1] 6 10 0 35 54 40

يتم ضرب القيم الموجودة في العمود x والعمود y في إطار البيانات معًا وتكون النتيجة متجهًا بطول 6.

مثال 2: استخدام الدالة inside()

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

 #multiply values in x and y and assign results to new column z
within(df, z <- x*y)

   X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40

يتم الآن تخزين نتائج الضرب في عمود جديد يسمى z .

من المهم ملاحظة أن الدالة inside() ‎ تنشئ نسخة من إطار البيانات الأصلي ولكنها لا تقوم فعليًا بتعديل إطار البيانات الأصلي:

 #view original data frame
df

   xy
1 3 2
2 5 2
3 5 0
4 7 5
5 6 9
6 10 4

لتخزين نتائج الضرب بشكل دائم، يجب عليك تعيين النتائج إلى إطار بيانات جديد:

 #multiply values in x and y and assign results to new data frame
df_new <- within(df, z <- x*y)

#view new data frame
df_new

   X Y Z
1 3 2 6
2 5 2 10
3 5 0 0
4 7 5 35
5 6 9 54
6 10 4 40

مصادر إضافية

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

كيفية إضافة عمود إلى إطار البيانات في R
كيفية إضافة عمود فارغ إلى إطار البيانات في R
كيفية فرز إطار البيانات حسب العمود في R

Add a Comment

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