كيفية إزالة القيم المتطرفة من أعمدة متعددة في r
في كثير من الأحيان قد ترغب في إزالة القيم المتطرفة من أعمدة متعددة مرة واحدة في R.
هناك طريقة شائعة لتعريف الملاحظة باعتبارها قيمة متطرفة وهي إذا كانت 1.5 مرة من المدى الربيعي فوق الربع الثالث (Q3) أو 1.5 مرة من المدى الربيعي أسفل الربع الأول (Q1).
باستخدام هذا التعريف، يمكننا استخدام الخطوات التالية لإنشاء دالة بسيطة لتحديد القيم المتطرفة ثم تطبيق هذه الوظيفة عبر أعمدة متعددة في إطار بيانات R.
الخطوة 1: إنشاء إطار البيانات
لنبدأ بإنشاء إطار بيانات في R:
df <- data.frame(index=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), var1=c(4, 4, 5, 4, 3, 2, 8, 9, 4, 5), var2=c(1, 2, 4, 4, 6, 9, 7, 8, 5, 29), var3=c(9, 9, 9, 5, 5, 3, 4, 5, 11, 34))
الخطوة 2: تحديد الوظيفة الخارجية.
بعد ذلك، دعونا نحدد دالة يمكنها تحديد القيم المتطرفة ودالة يمكنها بعد ذلك إزالة القيم المتطرفة:
outliers <- function (x) { Q1 <- quantile(x, probs =.25) Q3 <- quantile(x, probs =.75) iqr = Q3-Q1 upper_limit = Q3 + (iqr*1.5) lower_limit = Q1 - (iqr*1.5) x > upper_limit | x < lower_limit } remove_outliers <- function (df, cols = names (df)) { for (col in cols) { df <- df[!outliers(df[[col]]),] } df }
الخطوة 3: تطبيق الدالة الخارجية على إطار البيانات.
أخيرًا، دعونا نطبق هذه الوظيفة على عدة أعمدة في إطار البيانات لإزالة القيم المتطرفة:
remove_outliers(df, c('var1', 'var2', 'var3')) index var1 var2 var3 1 1 4 1 9 2 2 4 2 9 3 3 5 4 9 4 4 4 4 5 5 5 3 6 5 9 9 4 5 11
يمكنك العثور على المزيد من دروس R هنا .