웹사이트 검색

Tidyr, Fill 함수를 사용하여 R에서 누락된 값 채우기


누락된 데이터 또는 값은 데이터 레코드가 변수에 없을 때 발생합니다. 제대로 처리하지 않으면 데이터 모델링 프로세스에서 심각한 문제가 발생합니다. 무엇보다도 대부분의 알고리즘은 누락된 데이터에 익숙하지 않습니다.

R에서 누락된 데이터를 처리하는 방법에는 여러 가지가 있습니다. 해당 레코드를 삭제할 수 있습니다. 그러나 그렇게 하면 정보가 삭제되고 모델링에서 잠재적 우위를 잃을 수 있음을 명심하십시오. 반면에 누락된 데이터를 데이터의 평균과 중앙값으로 대치할 수 있습니다. 이 기사에서는 Tidyr 패키지를 사용하여 R에서 누락된 값을 채우는 방법을 살펴보겠습니다.

Tidyr는 데이터를 정리하는 데 도움이 되는 많은 기능을 제공하는 R 패키지입니다. 더 나은 데이터 품질, 더 나은 모델!

1. R에서 누락된 데이터

  • 결측값은 NA, NAN 등 다양한 형식으로 표시될 수 있습니다.
  • 변수에 누락된 레코드입니다. 단일 값 또는 전체 행일 수 있습니다.
  • 누락된 값은 숫자 데이터와 범주 데이터 모두에서 발생할 수 있습니다.
  • R은 누락된 데이터를 처리하는 다양한 방법을 제공합니다.
  • Tidyr 패키지는 하향식 또는 상향식 접근 방식을 사용하여 누락된 데이터를 채우는 데 도움이 됩니다.

2. R의 Tidyr 패키지

  • R의 Tidyr 패키지는 R의 원시 데이터를 정리하는 데 사용됩니다.
  • If는 정리, 구성, 누락된 값 채우기 등의 기능을 제공합니다.
  • R 파이프와 함께 tidyr를 사용할 것입니다.

R에 Tidyr 패키지를 설치하려면 R에서 아래 코드를 실행합니다.

#Install tidyr package

install.packages('tidyr')


#Load the library

library(tidyr)

package ‘tidyr’ successfully unpacked and MD5 sums checked

위와 같이 tidyr를 성공적으로 로드하면 확인 메시지가 표시됩니다.

3. 데이터프레임 생성

예, 누락된 값이 있는 간단한 샘플 데이터 프레임을 만들어야 합니다. 이렇게 하면 tidyr의 채우기 기능을 사용하여 누락된 데이터를 채우는 데 도움이 됩니다.

#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. 두 가지 접근 방식

네, 아까 말씀드린 대로 데이터를 입력하시면 됩니다. 이 프로세스에는 두 가지 접근 방식이 포함됩니다.

  • Up - 누락된 값을 채우는 동안 값을 채우는 방향을 지정해야 합니다. 위로를 선택하면 채우기 프로세스가 상향식으로 진행됩니다.
  • 아래로 - 이 방법에서는 채우기 방향을 아래로 설정해야 합니다.

이해하지 못하셨나요?

괜찮아요. 우리는 같은 것을 설명하기 위해 몇 가지 예를 살펴보고 일이 어떻게 작동하는지 알게 될 것입니다.

5. 누락된 값 채우기 - '위로'

이 프로세스에는 3개의 열과 10개의 데이터 레코드가 있는 데이터 프레임이 있습니다. 채우기 기능을 사용하여 누락된 데이터를 처리하기 전에 몇 가지 사항을 확인해야 합니다.

때때로 데이터가 수집될 때 사람들은 동일하기 때문에 일부 값의 표현으로 1개의 값을 입력할 수 있습니다.

예: 나이를 모을 때 25세인 사람이 10명이라면 10명 모두 25세라는 것을 마지막 한 사람에 대해 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

채우기 기능이 UP 방향(Bottom - Up)을 사용하여 누락된 값을 채운 것을 볼 수 있습니다.

  • 마지막 행에 2개의 NA 값이 있는 것을 볼 수 있습니다. 이는 채우기 기능이 먼저 NA 값을 만나고 방향이 UP일 때 다음 NA 값으로 채우기 때문입니다.

6. 누락된 값 채우기 - 'Down'

음, 여기서는 'Down' 방법을 사용하여 데이터에서 누락된 값을 채울 것입니다. 이전 섹션에서 언급한 몇 가지 가정을 항상 확인하여 수행 중인 작업과 결과를 이해하십시오.

#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을 만나기 때문입니다. 유효한 데이터 레코드를 찾을 때까지 다음 NA 영역에 86을 채울 것입니다.

7. 마무리

R에서 누락된 값을 채우는 것은 null 값이 있는 데이터를 분석할 때 가장 중요한 프로세스입니다. 다소 어렵게 느껴질 수 있지만 기사를 한두 번 훑어보고 간결하게 이해하십시오. 소화하기 힘든 케이크가 아니에요!.

이 방법이 향후 작업에 도움이 되기를 바랍니다. 지금은 여기까지입니다. 행복한 R!!! :)

더 읽기: R의 채우기 기능