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