Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 티스토리
- 한빛미디어서평단
- 매틀랩
- Ga
- 딥러닝
- Linux
- 독후감
- 텐서플로
- MATLAB
- Blog
- 서평
- Python
- 파이썬 시각화
- 통계학
- tensorflow
- matplotlib
- MySQL
- 파이썬
- python visualization
- Pandas
- 한빛미디어
- SQL
- 블로그
- Visualization
- Tistory
- 리눅스
- 서평단
- 시각화
- Google Analytics
- 월간결산
Archives
- Today
- Total
pbj0812의 코딩 일기
[R] 크롤링 및 데이터 전처리 본문
0. 목표
- R을 통한 크롤링
1. 코드작성
1) 라이브러리 설치 및 호출
install.packages('rvest')
library(rvest)
library(stringr)
library(data.table)
2) 파싱
- css가 전혀 없고 구분할 수 있는 부분이 pre 밖에 없기에 아래와 같이 작성
url <- "페이지 소스"
data <- read_html(url) %>% html_nodes("pre")
3) 텍스트화
- 원하는 데이터가 1에 있기에 1을 선택하고, html_text를 통한 텍스트화
data2 <- data[1]
data3 <- html_text(data2)
4) 엔터(\n) 제거
- 테이블화가 전혀 되어 있지 않고 \n을 통해 분류해 놓은 데이터라 str_split을 사용한 강제 변환
data4 <- str_split(data3, "\n")
- 결과
5) 필요없는 라인 제거
- 자동적으로 맨 마지막 라인을 제거하기 위하여 전체 list의 전체 길이를 구한 다음 제거
- 데이터 제외하고 다 제거
data5 <- data4[[1]]
data5 <- data5[-length(data5)]
data5 <- data5[-c(5, 4, 3, 2, 1)]
- 결과
6) 테이블화를 위한 전처리
(1) result 라는 변수를 생성
(2) data5의 데이터를 한 줄 씩 불러와 띄워쓰기를 통한 분류를 하고 그 결과의 길이가 12이면 저장, 아니면 제외
result <- list()
for(i in 1:length(data5)){
a <- strsplit(data5[i], "\\s+")[[1]]
if(length(a)==12){
result <- append(result, a)
} else {
print('')
}
}
- 결과(1 * 1008의 형태)
7) 데이터 프레임화
(1) matrix를 사용하여 1줄이 아닌 x행 12열로 변환
(2) data.frame을 통한 데이터 프레임화
(3) 공란인 첫번째 열 삭제
(4) 열이름 채워주기
result2 <- matrix(result, byrow=T, ncol=12)
result3 <- data.frame(result2)
result3 <- subset(result3, select = -1 )
names(result3) <- c("PRES", "HGHT", "TEMP", "DWPT", "RELH", "MIXR", "DRCT", "SKNT", "THTA", "THTE", "THTV")
- 결과
8) 플롯
plot(result3$PRES, result3$TEMP)
- 결과
2. 참고
- R 열 제거
- R 크롤링
- R split
- R 행 제거
- R 반복문
- R if문
- R matrix
- R rvest
'ComputerLanguage_Program > R' 카테고리의 다른 글
[R] explore 라이브러리를 통한 EDA (0) | 2020.09.02 |
---|---|
[R] 워드 클라우드 생성 (0) | 2020.03.26 |
[R] 데이터 과학을 위한 통계 실습 환경 구성 (0) | 2019.12.18 |
[R] ggPieDonut 사용 하기 (0) | 2019.11.16 |
[R] R - Jupyter notebook 연동 (0) | 2019.08.19 |
Comments