본문 바로가기
R 주제/R 기초 및 통계 강의

[R강의] 140. 데이터 프레임을 쉽게 조작하는 transform 함수

by 만다린망고 2023. 2. 27.
반응형

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

num=1:10
score=c(78,62,65,94,71,97,57,83,71,96)
md=data.frame(num,score)

> md
   num score
1    1    78
2    2    62
3    3    65
4    4    94
5    5    71
6    6    97
7    7    57
8    8    83
9    9    71
10  10    96


둘째 열에 5를 더해서 셋째 열을 추가하는 상황을 가정합시다. 아래와 같이 인덱싱을 이용하여 추가할 수 있습니다. 

> md[,'add']=md$score+5
> md
   num score add
1    1    78  83
2    2    62  67
3    3    65  70
4    4    94  99
5    5    71  76
6    6    97 102
7    7    57  62
8    8    83  88
9    9    71  76
10  10    96 101


이번에는 transform 함수를 이용해봅시다. 

> md=transform(md,add=score+5)
> md
   num score add
1    1    78  83
2    2    62  67
3    3    65  70
4    4    94  99
5    5    71  76
6    6    97 102
7    7    57  62
8    8    83  88
9    9    71  76
10  10    96 101

 

코드의 가독성이 더 좋습니다. 여러 열을 추가할 때는 인덱싱 보다 편리합니다. 아래와 같이 동시에 여러 열도 추가할 수 있습니다. 

 

> md=transform(md,add2=add+score,add3=2*add-1)
> md
   num score add add2 add3
1    1    78  83  161  165
2    2    62  67  129  133
3    3    65  70  135  139
4    4    94  99  193  197
5    5    71  76  147  151
6    6    97 102  199  203
7    7    57  62  119  123
8    8    83  88  171  175
9    9    71  76  147  151
10  10    96 101  197  201

 

 

 

반응형

댓글