웹사이트 검색

R melt() 및 cast() 함수 - R에서 데이터 재구성


안녕하세요, 독자 여러분! 이 기사에서는 R 프로그래밍의 중요한 개념인 R melt() 및 cast() 함수를 사용하여 데이터 재구성에 대해 자세히 살펴보겠습니다.

R의 melt() 및 cast() 함수는 데이터 프레임 내의 데이터를 사용자 지정 모양으로 재구성하는 데 도움이 됩니다.

R melt() 및 cast() 함수 작업

두 기능을 자세히 이해합시다. 시작합니다!

I.R 용융() 함수

R 프로그래밍의 melt() 함수는 내장 함수입니다. 이를 통해 사용자 정의 방식으로 데이터 프레임을 재구성하고 늘릴 수 있습니다. 긴 데이터 프레임 형식으로 데이터 값을 구성합니다.

아래 구문을 살펴보십시오!

통사론:

melt(data-frame, na.rm = FALSE, value.name = “name”, id = 'columns')

NA 값이 무시되지 않음을 의미하는 기본값으로 na.rm = FALSE와 함께 데이터 프레임을 재구성된 함수에 전달합니다.

또한 새 변수/열 이름을 value.name 매개 변수에 전달하여 함수에서 얻은 확장된 값을 여기에 저장합니다.

ID 매개변수는 재구성이 발생할 데이터 프레임의 열 이름으로 설정됩니다.

예:

이 예에서는 'MASS, reshape2 및 reshape' 라이브러리를 사용합니다. 데이터 프레임을 생성한 후 열 A와 B에 대해 데이터 프레임에 melt() 함수를 적용합니다.

rm(list = ls())

install.packages("MASS") 
install.packages("reshape2") 
install.packages("reshape") 

library(MASS) 
library(reshape2) 
library(reshape) 

 
A <- c(1,2,3,4,2,3,4,1) 
B <- c(1,2,3,4,2,3,4,1) 
a <- c(10,20,30,40,50,60,70,80) 
b <- c(100,200,300,400,500,600,700,800) 
data <- data.frame(A,B,a,b) 

print("Original data frame:\n") 
print(data) 

melt_data <- melt(data, id = c("A","B")) 

print("Reshaped data frame:\n") 
print(melt_data) 
   

산출:

[1] "Original data frame:\n"
  A B  a   b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800

[1] "Reshaped data frame:\n"
> print(melt_data) 
   A B variable value
1  1 1        a    10
2  2 2        a    20
3  3 3        a    30
4  4 4        a    40
5  2 2        a    50
6  3 3        a    60
7  4 4        a    70
8  1 1        a    80
9  1 1        b   100
10 2 2        b   200
11 3 3        b   300
12 4 4        b   400
13 2 2        b   500
14 3 3        b   600
15 4 4        b   700
16 1 1        b   800

II. R 캐스트() 함수

위에서 본 것처럼, melt() 함수를 적용하면 데이터 프레임이 길쭉한 데이터 프레임으로 변환됩니다. 데이터 프레임의 거의 원래의 자연스러운 모양을 되찾기 위해 R cast() 함수를 사용합니다.

cast() 함수는 집계 함수와 수식을 매개 변수로 받아들이고(여기서 수식은 재구성 후 데이터를 표현하는 방식입니다) 길쭉하거나 변형된 데이터 프레임을 거의 집계된 형태의 데이터 프레임.

통사론:

cast(data, formula, aggregate function)

평균, 합계 등과 같이 사용할 수 있는 모든 집계 함수를 사용하여 cast() 함수를 제공할 수 있습니다.

예:

rm(list = ls())

library(MASS) 
library(reshape2) 
library(reshape) 

A <- c(1,2,3,4,2,3,4,1) 
B <- c(1,2,3,4,2,3,4,1) 
a <- c(10,20,30,40,50,60,70,80) 
b <- c(100,200,300,400,500,600,700,800) 
data <- data.frame(A,B,a,b) 

print("Original data frame:\n") 
print(data) 

melt_data <- melt(data, id = c("A")) 

print("Reshaped data frame after melting:\n") 
print(melt_data)

cast_data = cast(melt_data, A~variable, mean) 

print("Reshaped data frame after casting:\n") 
print(cast_data)

위와 같이 cast()에 평균을 집계 함수로 전달하고 A 변수에 해당하는 변수를 표현 형식으로 설정했습니다.

산출:

[1] "Original data frame:\n"
  A B  a   b
1 1 1 10 100
2 2 2 20 200
3 3 3 30 300
4 4 4 40 400
5 2 2 50 500
6 3 3 60 600
7 4 4 70 700
8 1 1 80 800

[1] "Reshaped data frame after melting:\n"
   A variable value
1  1        B     1
2  2        B     2
3  3        B     3
4  4        B     4
5  2        B     2
6  3        B     3
7  4        B     4
8  1        B     1
9  1        a    10
10 2        a    20
11 3        a    30
12 4        a    40
13 2        a    50
14 3        a    60
15 4        a    70
16 1        a    80
17 1        b   100
18 2        b   200
19 3        b   300
20 4        b   400
21 2        b   500
22 3        b   600
23 4        b   700
24 1        b   800

[1] "Reshaped data frame after casting:\n"
  A B  a   b
1 1 1 45 450
2 2 2 35 350
3 3 3 45 450
4 4 4 55 550

결론

이상으로 이 주제를 마치겠습니다. 궁금한 점이 있으면 아래에 의견을 남겨주세요.

그때까지 즐거운 배움!! :)

참조:

  • https://www.rdocumentation.org/packages/reshape2/versions/1.4.4/topics/melt
  • https://www.rdocumentation.org/packages/reshape2/versions/1.4.4/topics/cast