Замена значений в R с помощью replace()

Замена значений в R – очень простая процедура благодаря специальной функции replace().

При анализе данных вы часто сталкиваетесь с отсутствующими, отрицательными или неточными значениями в наборе данных. Естественно, эти значения также могут повлиять на результат анализа.

Таким образом, чтобы избежать подобных ситуаций и ложной точности, вы можете использовать функцию replace() в R – она позволяет заменить ложные значения приемлемыми.

Синтаксис функции replace()

Функция replace() очень проста, ее легко реализовать. Он включает в себя вектор, индексный вектор и значения замены, как показано ниже:

replace(x, list, values)

где:

  • x – вектор, хранящий значения
  • list – индексный вектор
  • Values – значения, которые нужно вставить

Замена значения, присутствующего в векторе

В этом разделе мы посмотрим, как заменить значение в векторе.

В приведенных ниже примерах вы можете просмотреть функцию replace(), чтобы лучше понять ее синтаксис. Первое значение — это имя вектора, за которым следует индекс значения и, наконец, значение, которое нужно вставить.

df<- c('apple', 'orange','grape','banana')
df

"apple"  "orange"  "grape"  "banana"

Давайте заменим второй элемент в списке:

dy<-replace(df, 2,'blueberry')
dy

"apple"  "blueberry"  "grape"  "banana"

А теперь – четвертый:

dx<-replace(dy, 4, 'cranberry')
dx

"apple"  "blueberry"  "grape"  "cranberry"

Замена значений NA на 0

В этом разделе мы покажем, как заменить на 0 значения NA, которые присутствуют во фрейме данных. Это входные данные, имеющие значения NA.

Замена значений NA на 0 выполняется с помощью одного фрагмента кода, как показано ниже.

#defines the data frame
df<-airquality

#replaces the NA values with 0
df[is.na(df)]<-0
df

Замена значения NA средним значением

Иногда в процессе анализа данных удалять целую строку или столбец только ради одного или нескольких значений NA – не самая хорошая идея. Удалять большинство значений просто нельзя, так как это может негативно повлиять на точность и результаты.

Чтобы устранить эту проблему, значения NA заменяются средним значением остальных данных. Этот метод оказался критически важным для получения хорошей точности без потери данных.

df<-airquality
df
df$Ozone[is.na(df$Ozone)]<-mean(df$Ozone, na.rm = T)
round(df, digits = 0)

На изображении ниже обратите внимание на столбец Ozone, в котором значения NA заменены средним значением по столбцу.

Замена отрицательных значений на NA и 0

В этом разделе вы узнаете, как заменить отрицательные значения во фрейме данных на 0 и NA.

Это делается для того, чтобы избежать отрицательной тенденции результатов. Отрицательные значения, присутствующие в наборе данных, негативно влияют на анализ и приводят к ложной точности.

Взгляните на следующий пример:

the csv file
df<-read.csv('negetivevalues.csv')
df

#replaces the negetive numbers with zeros
data<-replace(df$entry2, df$entry2<0,0)
data

Output=> 0 654 345 876  34  98   0  98  67   0  45 761

#replaces the negetive values with NA's
data1<-replace(df$entry2,df$entry2<0,NA)
data1

Output=>  NA 654 345 876  34  98  NA  98  67  NA  45 761

Итоги

Замена значений во фрейме данных — очень удобная функция, доступная в R для анализа данных. Используя replace(), вы можете заменять NA, 0 и отрицательные значения приемлемыми значениями и таким образом очистить большие наборы данных, подготовить их к анализу.

Читайте также: Основы программирования на языке R

Tags:

Добавить комментарий