R에서 넓은 형식과 긴 형식 간의 데이터 형태를 변경하는 방법


R의 데이터 프레임은 넓은 형식이나 긴 형식 으로 표시될 수 있습니다.

목적에 따라 데이터 프레임을 이러한 특정 형식 중 하나로 만들 수 있습니다.

이러한 형식 간에 데이터를 재구성하는 가장 쉬운 방법은 R의 Tidyr 패키지에서 다음 두 가지 기능을 사용하는 것입니다.

  • ivot_longer() : 데이터 블록을 와이드 형식에서 긴 형식으로 변경합니다.
  • ivot_wider() : 긴 형식에서 와이드 형식으로 데이터 블록의 모양을 변경합니다.

다음 예에서는 각 기능을 실제로 사용하는 방법을 보여줍니다.

예 1: 넓은 데이터를 긴 데이터로 재구성

현재 와이드 형식인 R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (player=c('A', 'B', 'C', 'D'),
                 year1=c(12, 15, 19, 19),
                 year2=c(22, 29, 18, 12))

#view data frame
df

  player year1 year2
1 to 12 22
2 B 15 29
3 C 19 18
4 D 19 12

이 데이터 프레임을 긴 형식으로 회전하려면 ivot_longer() 함수를 사용할 수 있습니다.

 library (tidyr)

#pivot the data frame into a long format
df %>% pivot_longer(cols=c(' year1 ', ' year2 '),
                    names_to=' year ',
                    values_to=' points ')

# A tibble: 8 x 3
  player year points
      
1 A year1 12
2 A year2 22
3 B year1 15
4 B year2 29
5 C year1 19
6 C year2 18
7 D year1 19
8 D year2 12

year1year2 열 이름은 이제 “year”라는 새 열의 값으로 사용되고 해당 원래 열의 값은 “points”라는 새 열에 배치됩니다.

최종 결과는 긴 데이터 프레임입니다.

참고 : 여기서 Pivot_longer() 함수에 대한 전체 문서를 찾을 수 있습니다.

예 2: 데이터를 긴 것에서 넓은 것으로 재구성

현재 긴 형식인 R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (player=rep(c('A', 'B'), each= 4 ),
                 year=rep(c(1, 1, 2, 2), times= 2 ),
                 stat=rep(c('points', 'assists'), times= 4 ),
                 amount=c(14, 6, 18, 7, 22, 9, 38, 4))

#view data frame
df

  player year stat amount
1 A 1 points 14
2 A 1 assists 6
3 A 2 points 18
4 A 2 assists 7
5 B 1 points 22
6 B 1 assists 9
7 B 2 points 38
8 B 2 assists 4

이 데이터 프레임을 넓은 형식으로 회전하려면 ivot_wider() 함수를 사용할 수 있습니다.

 library (tidyr)

#pivot the data frame into a wide format
df %>% pivot_wider(names_from = stat, values_from = amount)

# A tibble: 4 x 4
  player year points assists
         
1 A 1 14 6
2 A 2 18 7
3 B 1 22 9
4 B 2 38 4

이제 통계 열의 값은 열 이름으로 사용되고 금액 열의 값은 이러한 새 열의 셀 값으로 사용됩니다.

최종 결과는 큰 데이터 블록입니다.

참고 : 여기서 Pivot_wider() 함수에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 그룹별로 고유한 값을 계산하는 방법
R에서 NA가 아닌 값을 계산하는 방법
R에서 상대도수표를 만드는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다