반응형

/*********************************************************************************************************
-- 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



반응형

+ Recent posts