카테고리 없음

Unite()

23임규민 2023. 11. 1. 02:19

Unite() 함수란?

*데이터프레임에서 두 개 이상의 열을 결합하여 새로운 열을 생성해주는 함수.

 

unite()함수는 하나의 열을 여러 열로 분리해주는 separate()의 기능과 반대로 여러 열을 하나의 열로 결합하는 기능을 가지고 있다.

 

Unite() 함수의 형식은 다음과 같다.

unite(data,col1,...,sep="?")

위 함수는 'data'라는 새로운 데이터프레임을 생성하며, 

'data'에 'col1'~'coln' 이라는 열을 결합함을 의미한다. 여기서  'sep="?"'은 결합할 때 ?(사용자 자유) 라는구분자를 사용한다는 것이다.

 

Unite()을 통해 Table 속 열을 결합하기

Table의 이름은profighter_info이며, 프로파이터들의 정보를 나나낸다.

 

먼저, profighter_info라는 피벗테이블을 생성해준다. 

나는 profighter_info 테이블에

이슬람 마카체프, 알렉산더 볼카노프스키, 맥스 할로웨이, 코리안 좀비, 이스라엘 아데산야

다섯 선수의 이름을 간소화한 별명과 생년, 승리,패배,무승부에 관한 정보를 담아보았다.

profighter_info <- data.frame(
  fighter = c('Islam', 'Volka', 'Max', 'Zombie', 'Israel'),
  birth = c('1991', '1988', '1991', '1987', '1989'),
  win = c('25', '26', '25', '16', '75'),
  lose = c('1', '3', '7', '5', '5'),
  draw = c('0', '0', '0', '0', '1')
)

이후 출력을 해보면 다음과 같은 피벗 테이블이 생선된다.

> profighter_info
  fighter birth win lose draw
1   Islam  1991  25    1    0
2   Volka  1988  26    3    0
3     Max  1991  25    7    0
4  Zombie  1987  16    5    0
5  Israel  1989  75    5    1

  나는 여기서 unite() 함수를 이용하여 선수들의 기록을  승-패-무 순서로  'record'라는 열에 합칠 것이다. 또한 sep="-"을 사용하여 -라는

구분자를 이용할 것이다.

> profighter_info%>%
+ unite(record,win,lose,draw,sep="-")

해당 코드를 실행하면 다음과 같은 결과가 나온다.

 

  fighter birth record
1   Islam  1991 25-1-0
2   Volka  1988 26-3-0
3     Max  1991 25-7-0
4  Zombie  1987 16-5-0
5  Israel  1989 75-5-1

unite()를 사용하여 3개의 열로 나눠져있던 선수들의 전적이  'record'라는 열로 묶어 한 눈에 볼 수 있도록 바꾸었다.

*만약 "-"가 아닌 공백을 구분자로 사용하고 싶다면 sep=" "을 사용하면 된다..!