그것은 매우 간단합니다 :
library(rvest)
library(dplyr)
URL <- "http://www.statcan.gc.ca/pub/11-626-x/2016056/tbl/tbl01-eng.htm"
pg <- read_html(URL)
pg %>%
html_nodes(".table-responsive") %>%
html_nodes("table") %>%
html_table(fill=TRUE) -> df
상단과 하단에이 GET 년대 cruft에의 제거, 그런 다음 saner 열 이름을 만듭니다.
df <- setNames(df[[1]][-c(1:2,154),], c("cip_code", "field_of_study",
"college_men", "college_women",
"bachelors_men", "bachelors_women",
"masters_men", "masters_women"))
우리는 두 번째에서 이것을 사용할 것이다, 그러나 그것은 문자 벡터에서 수 있지만 모든 것을 제거합니다
make_numeric <- function(x) { as.numeric(gsub("[^0-9]", "", x)) }
지금, 우리는 실행 각 열 이상 (처음 두 제외).
df <- mutate_each(df, funs(make_numeric), -cip_code, -field_of_study)
붐. 끝난.
glimpse(df)
## Observations: 151
## Variables: 8
## $ cip_code (chr) "1.00", "1.03", "1.06", "3.01", "3.02", "3.05", "3.06", "4.02", "4.03", "4.09", "5.01", "9.01...
## $ field_of_study (chr) "Agriculture, general", "Agricultural production operations", "Applied horticulture/horticult...
## $ college_men (dbl) 54095, 48329, 58948, 73514, 67374, 63693, 61992, NA, NA, 69677, NA, 67594, 59027, 64652, 5856...
## $ college_women (dbl) NA, NA, 38855, NA, 60126, 47135, NA, NA, NA, 53502, NA, 53607, 55221, 57860, 51968, 46424, 53...
## $ bachelors_men (dbl) 71610, NA, NA, 79448, NA, 72277, NA, 78738, 84319, NA, NA, 71466, 73217, NA, NA, NA, 80290, N...
## $ bachelors_women (dbl) 59829, NA, NA, 65014, NA, NA, NA, 64290, 66414, NA, 56851, 61712, 67580, 64610, NA, NA, 63534...
## $ masters_men (dbl) NA, NA, NA, 86788, NA, NA, NA, 84446, 90274, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 9560...
## $ masters_women (dbl) NA, NA, NA, 76566, NA, NA, NA, NA, 74163, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 77776, ...
'고정 = TRUE'을 사용하십시오. 또한 더 빠릅니다. –