반응형
/*********************************************************************************************************
-- Title : [R3.3] 웹(HTML) 문서 읽기 및 전처리 작업 예
-- Reference : hrd-net
-- Key word : R readHTMLTable() as.numeric html web 웹 stringAsFactors
*********************************************************************************************************/
-- R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | # ******************************************** # -- 웹 문서 읽기 # ******************************************** # -- 웹 문서 가져오기 library(XML) # -- 미국의 각 주별 1인당 소득자료 info.url = "http://www.infoplease.com/ipa/A0104652.html" # -- readHTMLTable() 함수 : <table>,<tr>,<td> 태그 이용 info.df=readHTMLTable(info.url, header=T, which=1, stringsAsFactors=F) # header=T : 컬럼명 있음, which=1 : 첫번째테이블, # stringsAsFactors 문자는 범주(값의 목록)처리 안함 head(info.df) info.df # ******************************************** # -- 전처리 작업 # ******************************************** # -- 레코드 수 변경 확인 = update info.df=info.df[1:53,] # NA 레코드 제거(54행 제거) info.df # -- $있는 행 제거 info.df=info.df[c(-2,-28),] info.df # -- V2, V3 컬럼 제거 info.df=info.df[,c(-2,-3)] # 1,2행 제거 head(info.df) # -- 컬럼명 추가 names(info.df) = c("State",'y1995','y2000','y2003','y2006','y2009','y2012','y2015') head(info.df) # default 6 line head(info.df, 10) # -- 1행 제거 info.df=info.df[c(-1),] # State행 제거 head(info.df) # -- 문자열 처리 패키지 로딩 library(stringr) fInfo = info.df str(fInfo) # -- ',' 제거하기 y2015 = fInfo$y2015 y2015_r = str_replace_all(y2015, ',', '') y2015_r # -- 문자 → 숫자로 변경 y2015_n= as.numeric(y2015_r) y2015_n mean(y2015_n) sum(y2015_n) # -- 15주 추출 y2015_15 = y2015_n[1:15] y2015_15 # -- 15주 추출 state = fInfo$State state_15 = state[1:15] state_15 # -- 막대차트 barplot(y2015_15 , main='주별 2015년도 1인당소득' , col=rainbow(15) , names.arg = state_15 ) | cs |
반응형