R studios

R통계 : Theme #6. Tidy.

Frisbeen 2024. 5. 27. 17:01

tidyr package

tidy하다는 것은..

  1. 하나의 셀에 하나의 데이터만 있다.
  2. 직선적으로 데이터를 찾아야한다. 행렬로

reshaping

  1. gather 열의 이름이 1999 2000 이럴때,, 그냥 year로 연도 병합하는게 좋다.

이럴때 gather 함수를 활용.

gather(data,'열 이름1','열 이름 2',key = "병합하고자 하는 열 1",value = "병합하고자 하는 열 2")
  1. spread()

하나의 열에 너무 데이터가 짬뽕일때.

예를 들어 열이름1의 데이터가 너무 짬뽕이라 보기 힘들면 열이름 1의 내부의 데이터가

차라리 열이 되는 것.

spread(data, '열이름1','열이름2')

결측치 다루기

1.drop_na() - na값 다 죽이기

drop_na(data,'Na값 있는열')
  1. fill() - 열의 na값 전부를 가장 최근값으로 한번에 바꿔버림
fill(data,'Na값 있는열')
  1. replace_na(x, list(열 = replace할 값)

##na가 엄청 많을때, 예를들어 설문조사 빈자리를 ‘보통이다’ 로 할때

	replace_na(x,list(x2=2)) >> x2의 Na값이 다 2로
  1. complete(data = full_seq(추가하고자 하는 열, 추가 할 단위), 추가 하고자 하는 열 2)
df %>% complete(year =full_seq(year,1),qtr)

분리시키기

seperate(data, 값이 중복되게 존재하는 열, sep =’분리단위’, into=c(”이 문자열로 분리”,”이 문자열로 분리2”)

separate(df,rate, sep="/",into=c("cases","pop")

rete                 뭐 이렇게 있는거다.
0.7k/19m 
0.5k/23m
  1. separate_rows(data,분리하고자 할 열, sep =’ /’)

예를들어 열 안에 0.7k/1.9M 이렇게 / 를 사이로 두고 데이터가 겹칠때 이들을 분리해주는것

  1. Unite(data, 열1,열2, col= 통합할 열, sep=””)

만약 열이 이 두개가 있고 열을 통합할때.

century. year

19 23

29 77

통합할 열

1923

2977

이런식으로 되는 것. sep =”0” 으로 둔다면

19023

29077

이런식으로 될 것이다.