1 Packages Installation

수집한 데이터의 탐색적 자료 분석을 위해 필수 패키지를 설치한다.

pkgs <- c("tidyverse", "readxl")
sapply(pkgs, require, character.only = TRUE)
## tidyverse    readxl 
##      TRUE      TRUE

2 Data Import

2019년 10월 7일 무신사에서 웹 크롤링을 진행하였다.

hood <- read_excel(path = "../data/hood.xlsx")
man2man <- read_excel(path = "../data/man2man.xlsx")
outer <- read_excel(path = "../data/outer.xlsx")

위 데이터를 개별적으로 불러왔고, 카테고리 변수를 하나 추가해서 통합 데이터로 바꿀 필요는 있다. 또한 이렇게 수집된 데이터의 DB화를 진행하기 위해서는 별도의 코드북을 만들 필요가 있다. - Deadline? who will charge in?

위 논의는 추후에 진행하더라도 각각의 개별적인 데이터를 보도록 하자.


3 Data cleansing & Missing Values Check

# pattern 
rm_values <- c("2017 \t\t\t\t\t\t\t\t\t F/W\n", "2019 \t\t\t\t\t\t\t\t\t S/S\n")
remove <- c("@\\w+", "http\\w+", "[[:punct:]]", " 개", "건↓", "만족")
selected_vars <- c("누적판매량", "인기도", "장바구니", "좋아요", "구매후기", "포토후기", "스타일후기", "일반후기", "블로그후기")

3.1 hood

hood2 <- hood %>% 
  filter(!hit_month %in% rm_values) %>% 
  mutate(인기도     = as.numeric(str_remove_all(hit_month, ",")), 
         장바구니   = as.numeric(str_remove_all(cart_month, ",")), 
         누적판매량 = as.numeric(str_remove_all(sell_sum, paste(remove, collapse = "|"))), 
         좋아요     = as.numeric(str_remove_all(like, paste(remove, collapse = "|"))), 
         구매후기   = as.numeric(str_remove_all(reviews_count, paste(remove, collapse = "|"))), 
         포토후기   = as.numeric(str_remove_all(estimate_photo, paste(remove, collapse = "|"))), 
         스타일후기 = as.numeric(str_remove_all(estimate_style, paste(remove, collapse = "|"))), 
         일반후기   = as.numeric(str_remove_all(estimate_review, paste(remove, collapse = "|"))), 
         블로그후기   = as.numeric(str_remove_all(estimate_blog, paste(remove, collapse = "|")))
         )


summary(hood2 %>% select(selected_vars)); paste0("전체 행의 개수는: ", nrow(hood))
##    누적판매량          인기도          장바구니            좋아요       
##  Min.   :   11.0   Min.   :     0   Min.   :    0.00   Min.   :   1.00  
##  1st Qu.:   17.0   1st Qu.:   137   1st Qu.:    3.00   1st Qu.:   3.00  
##  Median :   30.0   Median :   186   Median :   10.00   Median :   9.00  
##  Mean   :  180.2   Mean   :  1157   Mean   :   91.94   Mean   :  74.13  
##  3rd Qu.:   78.0   3rd Qu.:   423   3rd Qu.:   35.00   3rd Qu.:  30.00  
##  Max.   :17346.0   Max.   :655545   Max.   :16810.00   Max.   :9692.00  
##  NA's   :10705     NA's   :622      NA's   :622        NA's   :1749     
##     구매후기          포토후기         스타일후기          일반후기      
##  Min.   :   1.00   Min.   :   0.00   Min.   :   0.000   Min.   :   0.00  
##  1st Qu.:   1.00   1st Qu.:   0.00   1st Qu.:   0.000   1st Qu.:   0.00  
##  Median :   3.00   Median :   0.00   Median :   0.000   Median :   0.00  
##  Mean   :  39.24   Mean   :  11.77   Mean   :   5.814   Mean   :  58.63  
##  3rd Qu.:  10.00   3rd Qu.:   0.00   3rd Qu.:   0.000   3rd Qu.:   3.00  
##  Max.   :7475.00   Max.   :2149.00   Max.   :1121.000   Max.   :9258.00  
##  NA's   :8418                                                            
##    블로그후기     
##  Min.   : 0.0000  
##  1st Qu.: 0.0000  
##  Median : 0.0000  
##  Mean   : 0.1148  
##  3rd Qu.: 0.0000  
##  Max.   :22.0000  
## 
## [1] "전체 행의 개수는: 13387"
  • comment
  • comment


3.2 man2man

man2man2 <- man2man %>% 
  filter(!hit_month %in% rm_values) %>% 
  mutate(인기도     = as.numeric(str_remove_all(hit_month, ",")), 
         장바구니   = as.numeric(str_remove_all(cart_month, ",")), 
         누적판매량 = as.numeric(str_remove_all(sell_sum, paste(remove, collapse = "|"))), 
         좋아요     = as.numeric(str_remove_all(like, paste(remove, collapse = "|"))), 
         구매후기   = as.numeric(str_remove_all(reviews_count, paste(remove, collapse = "|"))), 
         포토후기   = as.numeric(str_remove_all(estimate_photo, paste(remove, collapse = "|"))), 
         스타일후기 = as.numeric(str_remove_all(estimate_style, paste(remove, collapse = "|"))), 
         일반후기   = as.numeric(str_remove_all(estimate_review, paste(remove, collapse = "|"))), 
         블로그후기   = as.numeric(str_remove_all(estimate_blog, paste(remove, collapse = "|")))
         )


summary(man2man2 %>% select(selected_vars)); paste0("전체 행의 개수는: ", nrow(man2man))
##    누적판매량          인기도          장바구니           좋아요        
##  Min.   :   11.0   Min.   :     0   Min.   :    0.0   Min.   :    1.00  
##  1st Qu.:   17.0   1st Qu.:   133   1st Qu.:    2.0   1st Qu.:    3.00  
##  Median :   32.0   Median :   182   Median :    9.0   Median :    9.00  
##  Mean   :  241.8   Mean   :  1427   Mean   :  104.8   Mean   :   77.83  
##  3rd Qu.:   88.0   3rd Qu.:   416   3rd Qu.:   34.0   3rd Qu.:   30.00  
##  Max.   :35272.0   Max.   :634822   Max.   :38481.0   Max.   :21079.00  
##  NA's   :12294     NA's   :375      NA's   :375       NA's   :2189      
##     구매후기         포토후기      스타일후기          일반후기       
##  Min.   :   1.0   Min.   :   0   Min.   :   0.000   Min.   :    0.00  
##  1st Qu.:   1.0   1st Qu.:   0   1st Qu.:   0.000   1st Qu.:    0.00  
##  Median :   4.0   Median :   0   Median :   0.000   Median :    0.00  
##  Mean   :  38.8   Mean   :  12   Mean   :   6.311   Mean   :   62.37  
##  3rd Qu.:  11.0   3rd Qu.:   1   3rd Qu.:   0.000   3rd Qu.:    3.00  
##  Max.   :7655.0   Max.   :2509   Max.   :1514.000   Max.   :13030.00  
##  NA's   :9473                                                         
##    블로그후기      
##  Min.   : 0.00000  
##  1st Qu.: 0.00000  
##  Median : 0.00000  
##  Mean   : 0.08786  
##  3rd Qu.: 0.00000  
##  Max.   :39.00000  
## 
## [1] "전체 행의 개수는: 15489"
  • comment
  • comment


outer2 <- outer %>% 
  filter(!hit_month %in% rm_values) %>% 
  mutate(인기도     = as.numeric(str_remove_all(hit_month, ",")), 
         장바구니   = as.numeric(str_remove_all(cart_month, ",")), 
         누적판매량 = as.numeric(str_remove_all(sell_sum, paste(remove, collapse = "|"))), 
         좋아요     = as.numeric(str_remove_all(like, paste(remove, collapse = "|"))), 
         구매후기   = as.numeric(str_remove_all(reviews_count, paste(remove, collapse = "|"))), 
         포토후기   = as.numeric(str_remove_all(estimate_photo, paste(remove, collapse = "|"))), 
         스타일후기 = as.numeric(str_remove_all(estimate_style, paste(remove, collapse = "|"))), 
         일반후기   = as.numeric(str_remove_all(estimate_review, paste(remove, collapse = "|"))), 
         블로그후기   = as.numeric(str_remove_all(estimate_blog, paste(remove, collapse = "|")))
         )


summary(outer2 %>% select(selected_vars)); paste0("전체 행의 개수는: ", nrow(outer))
##    누적판매량          인기도            장바구니           좋아요       
##  Min.   :  11.00   Min.   :    21.0   Min.   :   0.00   Min.   :   1.00  
##  1st Qu.:  16.25   1st Qu.:   118.0   1st Qu.:   3.00   1st Qu.:   3.00  
##  Median :  37.00   Median :   181.0   Median :   8.00   Median :   8.00  
##  Mean   : 291.22   Mean   :   907.7   Mean   :  69.99   Mean   :  56.98  
##  3rd Qu.: 122.00   3rd Qu.:   372.8   3rd Qu.:  27.00   3rd Qu.:  24.00  
##  Max.   :6260.00   Max.   :114578.0   Max.   :7923.00   Max.   :5389.00  
##  NA's   :1283      NA's   :7          NA's   :7         NA's   :207      
##     구매후기          포토후기         스타일후기         일반후기      
##  Min.   :   1.00   Min.   :  0.000   Min.   :  0.000   Min.   :   0.00  
##  1st Qu.:   1.00   1st Qu.:  0.000   1st Qu.:  0.000   1st Qu.:   0.00  
##  Median :   3.00   Median :  0.000   Median :  0.000   Median :   0.00  
##  Mean   :  51.07   Mean   :  8.935   Mean   :  7.967   Mean   :  35.76  
##  3rd Qu.:  10.00   3rd Qu.:  0.000   3rd Qu.:  0.000   3rd Qu.:   1.00  
##  Max.   :2752.00   Max.   :738.000   Max.   :640.000   Max.   :2796.00  
##  NA's   :1044                                                           
##    블로그후기     
##  Min.   : 0.0000  
##  1st Qu.: 0.0000  
##  Median : 0.0000  
##  Mean   : 0.1454  
##  3rd Qu.: 0.0000  
##  Max.   :12.0000  
## 
## [1] "전체 행의 개수는: 1516"
  • comment
  • comment

4 Correlation Graph

4.1 hood

par(family="AppleGothic")
plot(hood2 %>% select(selected_vars))

- comment - comment


4.2 man2man

par(family="AppleGothic")
plot(man2man2 %>% select(selected_vars))

  • comment
  • comment


4.3 outer

par(family="AppleGothic")
plot(outer2 %>% select(selected_vars))

  • comment
  • comment