본문 바로가기
9.유용한 함수모음/apply 함수

[R] apply 함수를 이용하여 이항 데이터로 변형하기

by makhimh 2020. 9. 28.
반응형

데이터프레임의 원소들을 한번에 이항데이터로 변경하는 방법입니다.


1) NA 여부에 따른 분류


먼저 데이터프레임을 하나 정의합시다.


c1=c(1,2,3,NA,NA)

c2=c(NA,NA,2,3,5)

c3=c(3,NA,1,NA,6)

df=data.frame(c1,c2,c3)


> df

  c1 c2 c3

1  1 NA  3

2  2 NA NA

3  3  2  1

4 NA  3 NA

5 NA  5  6


NA와 NA가 아닌데이터 둘로 구분할 것입니다. NA인 경우를 FALSE, NA가 아닌 경우를 TRUE로 만들어봅시다. 


df_lgst=!(is.na(df_lgst))


> df_lgst

        c1    c2    c3

[1,]  TRUE FALSE  TRUE

[2,]  TRUE FALSE FALSE

[3,]  TRUE  TRUE  TRUE

[4,] FALSE  TRUE FALSE

[5,] FALSE  TRUE  TRUE



2) 특정 값에 따른 분류


먼저 데이터프레임을 하나 정의합시다.


c1=1:5

c2=2:6

c3=3:7

df=data.frame(c1,c2,c3)


> df

  c1 c2 c3

1  1  2  3

2  2  3  4

3  3  4  5

4  4  5  6

5  5  6  7


3이상과 미만으로 분류해봅시다.


df_lgst=df>=3


> df_lgst

        c1    c2   c3

[1,] FALSE FALSE TRUE

[2,] FALSE  TRUE TRUE

[3,]  TRUE  TRUE TRUE

[4,]  TRUE  TRUE TRUE

[5,]  TRUE  TRUE TRUE



3) elseif 함수를 이용한 분류


c1=1:5

c2=2:6

c3=3:7

df=data.frame(c1,c2,c3)


> df

  c1 c2 c3

1  1  2  3

2  2  3  4

3  3  4  5

4  4  5  6

5  5  6  7


2를 0, 나머지를 1로 바꿔봅시다. 


> df=ifelse(df==2,0,1)

> df

     c1 c2 c3

[1,]  1  0  1

[2,]  0  1  1

[3,]  1  1  1

[4,]  1  1  1

[5,]  1  1  1



반응형

댓글