ج: كيفية استبدال القيم بشكل مشروط في إطار البيانات
يمكنك استخدام إحدى الطرق التالية لاستبدال القيم بشكل مشروط في إطار البيانات:
الطريقة الأولى: استبدال القيم عبر إطار البيانات بأكمله
#replace all values in data frame equal to 30 with 0 df[df == 30 ] <- 0
الطريقة الثانية: استبدال القيم في عمود معين
#replace values equal to 30 in 'col1' with 0 df$col1[df$col1 == 30 ] <- 0
الطريقة الثالثة: استبدال القيم الموجودة في عمود معين بناءً على عمود آخر
#replace values in col2 with 0 based on rows in col1 equal to 30 df$col2[df$col1 == 30 ] <- 0
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:
#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B'),
points=c(99, 90, 90, 88, 88),
assists=c(33, 28, 31, 30, 34),
rebounds=c(30, 30, 24, 24, 28))
#view data frame
df
team points assists rebounds
1 A 99 33 30
2 A 90 28 30
3 B 90 31 24
4 B 88 30 24
5 B 88 34 28
الطريقة الأولى: استبدال القيم عبر إطار البيانات بأكمله
يوضح الكود التالي كيفية استبدال جميع القيم التي تساوي 30 في إطار البيانات بـ 0:
#replace all values in data frame equal to 30 with 0 df[df == 30 ] <- 0 #view updated data frame df team points assists rebounds 1 A 99 33 0 2 A 90 28 0 3 B 90 31 24 4 B 88 0 24 5 B 88 34 28
الطريقة الثانية: استبدال القيم في عمود معين
يوضح الكود التالي كيفية استبدال جميع القيم التي تساوي 90 في عمود “النقاط” بـ 0:
#replace all values equal to 90 in 'points' column with 0 df$points[df$points == 90 ] <- 0 #view updated data frame df team points assists rebounds 1 A 99 33 30 2 A 0 28 30 3 B 0 31 24 4 B 88 30 24 5 B 88 34 28
الطريقة الثالثة: استبدال القيم الموجودة في عمود معين بناءً على عمود آخر
الكود التالي يوضح كيفية استبدال القيم الموجودة في عمود “النقاط” بـ 0، حيث القيمة الموجودة في عمود “الفريق” تساوي “B”.
#replace all values equal to 90 in 'points' column with 0 df$points[df$team == ' B '] <- 0 #view updated data frame df team points assists rebounds 1 A 99 33 30 2 A 90 28 30 3 B 0 31 24 4 B 0 30 24 5 B 0 34 28
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في R:
ج: كيفية دمج إطارات البيانات بناءً على أعمدة متعددة
ج: كيفية إضافة عمود إلى إطار البيانات بناءً على أعمدة أخرى