كيفية استبدال قيم inf بـ na في r
يمكنك استخدام الطرق التالية لاستبدال قيم Inf بقيم NA في R:
الطريقة الأولى: استبدال Inf بـ NA في Vector
x[is. infinite (x)] <- NA
الطريقة الثانية: استبدال Inf بـ NA في كافة أعمدة إطار البيانات
df[sapply(df, is. infinite )] <- NA
الطريقة الثالثة: استبدال Inf بـ NA في أعمدة محددة في إطار البيانات
df[c(' col1 ', ' col2 ')][sapply(df[c(' col1 ', ' col2 ')], is. infinite )] <- NA
يشرح هذا البرنامج التعليمي كيفية استخدام كل طريقة عمليًا مع إطار البيانات التالي:
#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(10, 10, 8, 14, 15, 15, 17, 17))
#view data frame
df
team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17
مثال 1: استبدل Inf بـ NA في المتجه
يوضح الكود التالي كيفية استبدال كافة قيم Inf بقيم NA في المتجه:
#create vector with some Inf values
x <- c(4, 12, Lower, 8, Lower, 9, 12, 3, 22, Lower)
#replace Inf values with NA
x[is. infinite (x)] <- NA
#view updated vector
x
[1] 4 12 NA 8 NA 9 12 3 22 NA
لاحظ أنه تم استبدال جميع قيم Inf من المتجه الأصلي بقيم NA.
مثال 2: استبدل Inf بـ NA في كافة أعمدة إطار البيانات
يوضح الكود التالي كيفية استبدال قيم Inf بقيم NA في كل عمود من إطار البيانات:
#create data frame
df <- data. frame (x=c(4, 5, 5, 4, Inf, 8, Inf),
y=c(10, Lower, Lower, 3, 5, 5, 8),
z=c(Inf, 5, 5, 6, 3, 12, 14))
#view data frame
df
X Y Z
1 4 10 Lower
2 5 Lower 5
3 5 Lower 5
4 4 3 6
5 Lower 5 3
6 8 5 12
7 Lower 8 14
#replace Inf values with NA values in all columns
df[sapply(df, is. infinite )] <- NA
#view updated data frame
df
X Y Z
1 4 10 NA
2 5 NA 5
3 5 NA 5
4 4 3 6
5 NA 5 3
6 8 5 12
7 NA 8 14
لاحظ أنه تم استبدال قيم Inf في كل عمود من إطار البيانات بقيم NA.
مثال 3: استبدل Inf بـ NA في أعمدة محددة في إطار البيانات
يوضح الكود التالي كيفية استبدال قيم Inf بقيم NA في أعمدة محددة لإطار البيانات:
#create data frame
df <- data. frame (x=c(4, 5, 5, 4, Inf, 8, Inf),
y=c(10, Lower, Lower, 3, 5, 5, 8),
z=c(Inf, 5, 5, 6, 3, 12, 14))
#view data frame
df
X Y Z
1 4 10 Lower
2 5 Lower 5
3 5 Lower 5
4 4 3 6
5 Lower 5 3
6 8 5 12
7 Lower 8 14
#replace Inf values with NA values in columns 'x' and 'z' only
df[c(' x ', ' z ')][sapply(df[c(' x ', ' z ')], is. infinite )] <- NA
#view updated data frame
df
X Y Z
1 4 10 NA
2 5 Lower 5
3 5 Lower 5
4 4 3 6
5 NA 5 3
6 8 5 12
7 NA 8 14
لاحظ أنه تم استبدال قيم Inf في العمودين “x” و”y” بقيم NA.
ومع ذلك، ظلت قيم Inf في العمود “y” كما هي.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في R:
كيفية استخدام is.na في R
كيفية استخدام na.omit في R
كيفية استبدال الفراغات بـ NA في R