Поиск по сайту:

Заполните пропущенные значения в R, используя Tidyr, функцию заполнения


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

В R существует множество способов обработки отсутствующих данных. Вы можете удалить эти записи. Но имейте в виду, что при этом вы теряете информацию и можете потерять потенциальное преимущество в моделировании. С другой стороны, вы можете заменить недостающие данные средним значением и медианой данных. В этой статье мы рассмотрим заполнение пропущенных значений в R с помощью пакета Tidyr.

Tidyr — это пакет R, который предлагает множество функций, которые помогут вам привести данные в порядок. Чем выше качество данных, тем лучше модель!

1. Отсутствующие данные в R

  • Отсутствующие значения могут обозначаться разными формами – NA, NAN и т. д.
  • В переменной отсутствует запись. Это может быть одно значение или целая строка.
  • Отсутствующие значения могут встречаться как в числовых, так и в категориальных данных.
  • R предлагает множество способов работы с отсутствующими данными.
  • Пакет Tidyr помогает заполнить недостающие данные, используя подход сверху вниз или снизу вверх.

2. Пакет Тидыр в R

  • Пакет Tidyr в R используется для очистки необработанных данных в R.
  • If предлагает функции для очистки, упорядочивания, заполнения пропущенных значений и т. д.
  • Мы будем использовать тидыр с каналами R.

Чтобы установить пакет Tidyr в R, запустите приведенный ниже код в R.

#Install tidyr package

install.packages('tidyr')


#Load the library

library(tidyr)

package ‘tidyr’ successfully unpacked and MD5 sums checked

Вы получите подтверждающее сообщение после успешной загрузки тайдыра, как показано выше.

3. Создайте фрейм данных

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

#Create a dataframe

a <- c('A','B','C','D','E','F','G','H','I','J')
b <- c('Roger','Carlo','Durn','Jessy','Mounica','Rack','Rony','Saly','Kelly','Joseph')
c <- c(86,NA,NA,NA,88,NA,NA,86,NA,NA)

df <- data.frame(a,b,c)
df
   a       b  c
1  A   Roger 86
2  B   Carlo NA
3  C    Durn NA
4  D   Jessy NA
5  E Mounica 88
6  F    Rack NA
7  G    Rony NA
8  H    Saly 86
9  I   Kelly NA
10 J  Joseph NA

Итак, мы получили наш фрейм данных, но с большим количеством пропущенных значений. Таким образом, в тех случаях, когда в ваших данных появляется все больше и больше отсутствующих значений, вы можете использовать функцию заполнения в R, чтобы заполнить соответствующие значения/соседние значения вместо отсутствующих данных.

4. Два разных подхода

Да, вы можете заполнить данные, как я сказал ранее. Этот процесс включает в себя два подхода -

  • Вверх — при заполнении пропущенных значений необходимо указать направление заполнения значений. Если выбрать «Вверх», процесс заполнения будет осуществляться снизу вверх.
  • Вниз. В этом методе необходимо указать направление заполнения вниз.

Не понял?

Не волнуйся. Мы рассмотрим несколько примеров, чтобы проиллюстрировать то же самое, и вы узнаете, как все работает.

5. Заполнение пропущенных значений — «Вверх»

В этом процессе у нас есть фрейм данных с 3 столбцами и 10 записями данных. Прежде чем использовать функцию заполнения для обработки отсутствующих данных, вы должны убедиться в некоторых вещах:

Иногда при сборе данных люди могут ввести 1 значение как представление некоторых значений, потому что они были одинаковыми.

Пример: при сборе данных о возрасте, если было 10 человек в возрасте 25 лет, вы можете упомянуть 25 против последнего человека, указав, что возраст всех 10 человек составляет 25 лет.

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

#Dataframe

   a       b  c
1  A   Roger 86
2  B   Carlo NA
3  C    Durn NA
4  D   Jessy NA
5  E Mounica 88
6  F    Rack NA
7  G    Rony NA
8  H    Saly 86
9  I   Kelly NA
10 J  Joseph NA


#Creste new dataframe by filling missing values (Up)
df1 <- df %>% fill(c, .direction = 'up')
df1
   a       b  c
1  A   Roger 86
2  B   Carlo 88
3  C    Durn 88
4  D   Jessy 88
5  E Mounica 88
6  F    Rack 86
7  G    Rony 86
8  H    Saly 86
9  I   Kelly NA
10 J  Joseph NA

Вы можете заметить, что функция заполнения заполнила недостающие значения, используя направление ВВЕРХ (Низ - Вверх).

  • Вы можете видеть, что в последних строках есть 2 значения NA. Это связано с тем, что функция заполнения сначала встречает значение NA и заполняет его до следующего значения NA при направлении ВВЕРХ.

6. Заполнение пропущенных значений — «Вниз»

Что ж, здесь мы будем использовать метод «Вниз», чтобы заполнить недостающие значения в данных. Всегда проверяйте некоторые предположения, которые я упомянул в предыдущем разделе, чтобы понять, что вы делаете и каков будет результат.

#Data


   a       b  c
1  A   Roger 86
2  B   Carlo NA
3  C    Durn NA
4  D   Jessy NA
5  E Mounica 88
6  F    Rack NA
7  G    Rony NA
8  H    Saly 86
9  I   Kelly NA
10 J  Joseph NA


#Creates new dataframe by filling missing values (Down) - (Top-Down approach)

df1 <- df %>% fill(c, .direction = 'down')
df1
   a       b  c
1  A   Roger 86
2  B   Carlo 86
3  C    Durn 86
4  D   Jessy 86
5  E Mounica 88
6  F    Rack 88
7  G    Rony 88
8  H    Saly 86
9  I   Kelly 86
10 J  Joseph 86

  • Здесь отсутствуют пропущенные значения. Это связано с тем, что функция заполнения сначала встречает действительные значения данных, равные 86. Она будет заполнять 86 в следующих областях NA, пока не найдет допустимую запись данных.

7. Подведение итогов

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

Я надеюсь, что этот метод поможет вам в ваших будущих заданиях. Это все на данный момент. Счастливый Р!!! :)

Подробнее: Функция заполнения в R