R - 데이터 재구성: 초보자 가이드
안녕하세요, 미래의 R 프로그래머 여러분! 오늘 우리는 R에서 데이터 재구성의 세계에 흥미로운 여정을 떠납니다. 프로그래밍을 해 본 적이 없으신 걱정 마세요 - 저는 친절한 안내자가 되어, 단계별로 안내해 드릴게요. 이 튜토리얼이 끝나면, 프로처럼 데이터를 재구성할 수 있을 거예요!
데이터 재구성이란?
들어가기 전에, 데이터 재구성이到底是什么인지 이야기해 보겠습니다. 레고 블록이 많이 있는 걸 상상해 보세요. 데이터 재구성은 그 블록들을 다시 정리하여 다른 구조를 만드는 것과 같습니다. R에서 우리는 데이터를同样的 방식으로 다시 정리하여 분석에 더 유용하게 만듭니다.
이제 손으로 직접 예제를 보겠습니다!
데이터 프레임에서 열과 행 추가
열 추가
먼저 간단한 것부터 시작해 보겠습니다. 과일에 대한 정보가 담긴 데이터 프레임을 상상해 보세요:
fruits <- data.frame(
name = c("Apple", "Banana", "Cherry"),
color = c("Red", "Yellow", "Red")
)
print(fruits)
이 출력물을 얻습니다:
name color
1 Apple Red
2 Banana Yellow
3 Cherry Red
이제 각 과일의 가격에 대한 새로운 열을 추가해 보겠습니다:
fruits$price <- c(0.5, 0.3, 0.7)
print(fruits)
이제 새로운 열이 추가되었습니다:
name color price
1 Apple Red 0.5
2 Banana Yellow 0.3
3 Cherry Red 0.7
행 추가
새로운 과일을 목록에 추가하고 싶다면 어떻게 하나요? 이것도 할 수 있습니다!
new_fruit <- data.frame(name = "Date", color = "Brown", price = 0.6)
fruits <- rbind(fruits, new_fruit)
print(fruits)
이렇게 하면 다음과 같습니다:
name color price
1 Apple Red 0.5
2 Banana Yellow 0.3
3 Cherry Red 0.7
4 Date Brown 0.6
데이터 프레임 통합
이제 다른 데이터 프레임에 영양 정보가 있다고 가정해 봅시다:
nutrition <- data.frame(
name = c("Apple", "Banana", "Cherry", "Date"),
calories = c(52, 89, 50, 282)
)
# 두 데이터 프레임을 통합합니다
fruit_info <- merge(fruits, nutrition, by = "name")
print(fruit_info)
이렇게 하면 다음과 같습니다:
name color price calories
1 Apple Red 0.5 52
2 Banana Yellow 0.3 89
3 Cherry Red 0.7 50
4 Date Brown 0.6 282
이렇게 하면 두 개의 다른 소스에서 정보를 하나의 종합적인 데이터 프레임으로 결합할 수 있습니다!
녹이기와 형상화
이제 더 고급 재구성 기술로 넘어가 보겠습니다. reshape2
패키지를 사용하겠으므로, 설치하고 로드해 두세요:
install.packages("reshape2")
library(reshape2)
데이터 녹이기
데이터를 녹이는 것은 얼음을 녹이는 것과 같습니다 - 모든 것이 유체가 되고 다시 형태를 바꿀 수 있습니다. fruit_info
데이터를 녹여 보겠습니다:
melted_fruits <- melt(fruit_info, id.vars = "name")
print(melted_fruits)
이렇게 하면 다음과 같습니다:
name variable value
1 Apple color Red
2 Banana color Yellow
3 Cherry color Red
4 Date color Brown
5 Apple price 0.50
6 Banana price 0.30
7 Cherry price 0.70
8 Date price 0.60
9 Apple calories 52.00
10 Banana calories 89.00
11 Cherry calories 50.00
12 Date calories 282.00
각 속성(색상, 가격, 칼로리)이 별도의 행으로 되어 있네요. 이는 특정 유형의 분석과 시각화에 매우 유용합니다.
녹인 데이터 형상화
이제 우리는 녹인 데이터를 새로운 형태로 다시 형상화할 수 있습니다. 과일을 열로, 속성을 행으로 하고 싶다고 가정해 봅시다:
casted_fruits <- dcast(melted_fruits, variable ~ name)
print(casted_fruits)
이렇게 하면 다음과 같습니다:
variable Apple Banana Cherry Date
1 color Red Yellow Red Brown
2 price 0.50 0.30 0.70 0.60
3 calories 52.00 89.00 50.00 282.00
이렇게 하면 데이터 구조를 완전히 변환할 수 있습니다!
결론
축하합니다! 지금까지 R에서 데이터 재구성의 세계로 첫 걸음을 냈습니다. 레고로 만드는 것처럼, 중요한 것은 실험하고 자신에게 가장 적합한 구조를 찾는 것입니다. 이 함수들을 자유롭게 실험해 보세요 - 그게 진짜 배울 수 있는 방법입니다!
이제 우리가 다루었던 방법들의 빠른 참조 표를 제공합니다:
방법 | 함수 | 목적 |
---|---|---|
열 추가 |
$ 또는 cbind()
|
데이터 프레임에 새로운 변수 추가 |
행 추가 | rbind() |
데이터 프레임에 새로운 관측치 추가 |
통합 | merge() |
다른 데이터 프레임의 데이터 결합 |
녹이기 | melt() |
넓은 데이터를 긴 형식으로 재구성 |
형상화 | dcast() |
긴 데이터를 넓은 형식으로 재구성 |
계속 연습하면 곧 마스터 스켈프트처럼 데이터를 재구성할 수 있을 것입니다! 행복한 코딩을 기원합니다!
Credits: Image by storyset