네이버 국회의원 인물정보 1

데이터 가져오기 - 네이버 인물정보를 통해 데이터를 가져왔다면 이를 다시 재현하여 보자.

데이터 살펴보기

데이터 가져오기 - 네이버 인물정보를 통해 가져온 데이터가 정말 제대로 된 것인지 listviewer 팩키지 jsoneidit() 함수로 살펴보자.

# 0. 환경설정 -----
library(tidyverse)
library(trelliscopejs)

# 1. 국회의원 인물정보 -----

np_comp_list <- read_rds("data/naver_people_info.rds")
np_comp_list <- plyr::compact(np_comp_list) # NULL 제거

listviewer::jsonedit(np_comp_list)

데이터프레임 변환

리스트 데이터를 데이터프레임으로 변환시킨다. 이를 위해서 함수형 프로그래밍을 지원하는 purrr 팩키지를 적극사용한다.

# 2. 소셜 데이터 -----
## 리스트 --> 데이터프레임
np_comp_df <- tibble(
  이름 = map_chr(np_comp_list, "name", .default = NA),
  출생 = map_chr(np_comp_list, "출생", .default = NA),
  소속 = map_chr(np_comp_list, "소속", .default = NA),
  사이트 = map_chr(np_comp_list, "사이트", .default = NA),
  사진 = map_chr(np_comp_list, "사진", .default = NA),
  학력 = map_chr(np_comp_list, "학력", .default = NA),
  수상 = map_chr(np_comp_list, "수상", .default = NA),
  경력 = map_chr(np_comp_list, "경력", .default = NA),
  가족 = map_chr(np_comp_list, "가족", .default = NA)
)

np_comp_df %>% 
  select(이름, 출생, 사이트) %>% 
  DT::datatable()

작은창(trelliscope) 시각화

데이터프레임을 trelliscope을 활용하여 작은창(trellis)을 쭉 연결하여 인터랙티브하게 구현해 보자.

# options(encoding = "utf8")

np_comp_df %>%
  mutate(panel = img_panel(사진)) %>%
  trelliscope("naver_people", nrow = 3, ncol = 6,
              state = list(labels = c("이름", "출생", "소속")),
              path="congress_trellis")