개발자입니다
섹션 7. Chapter 07 reshape2 패키지 (Youtube HelloJany) 본문
■ reshape2 패키지
데이터의 행을 열로, 열을 행으로
-melt()
melt(데이터 세트, id.var = "기준 열", measure.vars = "변환 열")
install.packages("reshape2")
library(reshape2)
str(airquality)
head(airquality) # airquality 데이터 세트 확인
names(airquality) <- tolower(names(airquality)) # 소문자로 변환
melt_test <- melt(airquality) # melt() 함수 적용하여 데이터를 melt_test 변수에 할당
head(melt_test)
tail(melt_test) # 뒤에서 1행부터 6행까지 출력하기
# 변형한 데이터를 melt_test2 변수에 할당
melt_test2 <- melt(airquality, id.vars = c("month", "wind"), measure.vars = "ozone")
head(melt_test2)
결과
> str(airquality)
'data.frame': 153 obs. of 6 variables:
$ ozone : int 41 36 12 18 NA 28 23 19 8 NA ...
$ solar.r: int 190 118 149 313 NA NA 299 99 19 194 ...
$ wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
$ temp : int 67 72 74 62 56 66 65 59 61 69 ...
$ month : int 5 5 5 5 5 5 5 5 5 5 ...
$ day : int 1 2 3 4 5 6 7 8 9 10 ...
> head(airquality) # airquality 데이터 세트 확인
ozone solar.r wind temp month day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
6 28 NA 14.9 66 5 6
> names(airquality) <- tolower(names(airquality)) # 소문자로 변환
> melt_test <- melt(airquality) # melt() 함수 적용하여 데이터를 melt_test 변수에 할당
No id variables; using all as measure variables
> head(melt_test)
variable value
1 ozone 41
2 ozone 36
3 ozone 12
4 ozone 18
5 ozone NA
6 ozone 28
> tail(melt_test) # 뒤에서 1행부터 6행까지 출력하기
variable value
913 day 25
914 day 26
915 day 27
916 day 28
917 day 29
918 day 30
> # 변형한 데이터를 melt_test2 변수에 할당
> melt_test2 <- melt(airquality, id.vars = c("month", "wind"), measure.vars = "ozone")
> head(melt_test2)
month wind variable value
1 5 7.4 ozone 41
2 5 8.0 ozone 36
3 5 12.6 ozone 12
4 5 11.5 ozone 18
5 5 14.3 ozone NA
6 5 14.9 ozone 28
-cat() 함수
: 세로로 긴 데이터 모양을 가로로 전환
acast() : 벡터, 행렬, 배열 형태를 변환
dcast() : 데이터 프레임 형태를 변환
-dcast(데이터 세트, 기준 열 ~ 변환 열)
install.packages("reshape2")
library(reshape2)
airquality
names(airquality) <- tolower(names(airquality)) # 소문자로 변환한 변수명으로 기존 변수명 대체
head(airquality) # airquality 데이터 세트 확인
# airquality 데이터를 변형한 후 aq_melt 변수에 할당
aq_melt <- melt(airquality, id = c("month", "day"), na.rm = TRUE)
head(aq_melt)
# aq_melt 데이터를 변형한 후 aq_dcast 변수에 할당
aq_dcast <- dcast(aq_melt, month + day ~ variable)
head(aq_dcast) # aq_dcast 데이터 세트 확인
View(airquality)
View(aq_melt)
View(aq_dcast)
-acast(데이터 세트, 기준 열 ~ 변환 열 ~ 분리 기준 열)
# aq_melt 데이터를 변형한 후 aq_acast 변수에 할당
aq_acast <- acast(aq_melt, month ~ day ~ variable)
head(aq_acast) # aq_acast 데이터 세트 확인
> aq_acast <- acast(aq_melt, month ~ day ~ variable)
> head(aq_acast) # aq_dcast 데이터 세트 확인
, , ozone
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
5 41 36 12 18 NA 28 23 19 8 NA 7 16 11 14 18 14 34 6 30 11 1 11 4
6 NA NA NA NA NA NA 29 NA 71 39 NA NA 23 NA NA 21 37 20 12 13 NA NA NA
7 135 49 32 NA 64 40 77 97 97 85 NA 10 27 NA 7 48 35 61 79 63 16 NA NA
8 39 9 16 78 35 66 122 89 110 NA NA 44 28 65 NA 22 59 23 31 44 21 9 NA
9 96 78 73 91 47 32 20 23 21 24 44 21 28 9 13 46 18 13 24 16 13 23 36
24 25 26 27 28 29 30 31
5 32 NA NA NA 23 45 115 37
6 NA NA NA NA NA NA NA NA
7 80 108 20 52 82 50 64 59
8 45 168 73 NA 76 118 84 85
9 7 14 30 NA 14 18 20 NA
, , solar.r
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
5 190 118 149 313 NA NA 299 99 19 194 NA 256 290 274 65 334 307 78
6 286 287 242 186 220 264 127 273 291 323 259 250 148 332 322 191 284 37
7 269 248 236 101 175 314 276 267 272 175 139 264 175 291 48 260 274 285
8 83 24 77 NA NA NA 255 229 207 222 137 192 273 157 64 71 51 115
9 167 197 183 189 95 92 252 220 230 259 236 259 238 24 112 237 224 27
19 20 21 22 23 24 25 26 27 28 29 30 31
5 322 44 8 320 25 92 66 266 NA 13 252 223 279
6 120 137 150 59 91 250 135 127 47 98 31 138 NA
7 187 220 7 258 295 294 223 81 82 213 275 253 254
8 244 190 259 36 255 212 238 215 153 203 225 237 188
9 238 201 238 14 139 49 20 193 145 191 131 223 NA
, , wind
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
5 7.4 8.0 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 6.9 9.7 9.2 10.9 13.2
6 8.6 9.7 16.1 9.2 8.6 14.3 9.7 6.9 13.8 11.5 10.9 9.2 8.0 13.8 11.5
7 4.1 9.2 9.2 10.9 4.6 10.9 5.1 6.3 5.7 7.4 8.6 14.3 14.9 14.9 14.3
8 6.9 13.8 7.4 6.9 7.4 4.6 4.0 10.3 8.0 8.6 11.5 11.5 11.5 9.7 11.5
9 6.9 5.1 2.8 4.6 7.4 15.5 10.9 10.3 10.9 9.7 14.9 15.5 6.3 10.9 11.5
16 17 18 19 20 21 22 23 24 25 26 27 28 29
5 11.5 12.0 18.4 11.5 9.7 9.7 16.6 9.7 12.0 16.6 14.9 8.0 12.0 14.9
6 14.9 20.7 9.2 11.5 10.3 6.3 1.7 4.6 6.3 8.0 8.0 10.3 11.5 14.9
7 6.9 10.3 6.3 5.1 11.5 6.9 9.7 11.5 8.6 8.0 8.6 12.0 7.4 7.4
8 10.3 6.3 7.4 10.9 10.3 15.5 14.3 12.6 9.7 3.4 8.0 5.7 9.7 2.3
9 6.9 13.8 10.3 10.3 8.0 12.6 9.2 10.3 10.3 16.6 6.9 13.2 14.3 8.0
30 31
5 5.7 7.4
6 8.0 NA
7 7.4 9.2
8 6.3 6.3
9 11.5 NA
, , temp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
5 67 72 74 62 56 66 65 59 61 69 74 69 66 68 58 64 66 57 68 62 59 73 61 61
6 78 74 67 84 85 79 82 87 90 87 93 92 82 80 79 77 72 65 73 76 77 76 76 76
7 84 85 81 84 83 83 88 92 92 89 82 73 81 91 80 81 82 84 87 85 74 81 82 86
8 81 81 82 86 85 87 89 90 90 92 86 86 82 80 79 77 79 76 78 78 77 72 75 79
9 91 92 93 93 87 84 80 78 75 73 81 76 77 71 71 78 67 76 68 82 64 71 81 69
25 26 27 28 29 30 31
5 57 58 57 67 81 79 76
6 75 78 73 80 77 83 NA
7 85 82 86 88 86 83 81
8 81 86 88 97 94 96 94
9 63 70 77 75 76 68 NA
'R' 카테고리의 다른 글
섹션 9. Chapter 09 dplyr 패키지 (Youtube HelloJany) (0) | 2022.09.08 |
---|---|
섹션 8. Chapter 08 KoNLP 패키지 (Youtube HelloJany) (0) | 2022.09.08 |
섹션 6. Chapter 06 패키지 (Youtube HelloJany) (0) | 2022.09.07 |
섹션 5. Chapter 05 데이터 가공 (Youtube HelloJany) (0) | 2022.09.07 |
섹션 4. Chapter 04 데이터 수집 (Youtube HelloJany) (0) | 2022.09.07 |