자신 만의 열 머리글을 추가하고이 함수를 사용하여 몇 년 또는 몇 주 동안 반복해야합니다. return an empty table 또는 데이터가 otherwise unavailable 인 몇 년/주 조합이 있습니다. 또한 다른 수의 열을 반환하는 것으로 보입니다. 일부는 12 개가 있고, 일부는 10 개가 있습니다. 무슨 일이 일어나는지 확실하지 않습니다. 함수에는 모두 NA 인 열을 제거하는 행이 있습니다. 그 라인을 주석 처리하고 싶을 수 있습니다. 나는 그 코드에 대해 설명하려고 노력했다. 나는 그것을 아주 잘 테스트하지 않았다.
read_MMWR_table <- function(year=1997, week=18){
url <- paste0("https://wonder.cdc.gov/mmwr/mmwr_reps.asp?mmwr_year=",
year,
"&mmwr_week=",
week,
"&mmwr_table=2B&request=Export&mmwr_location=")
tmp <- readLines(url)
if(grepl("DOCTYPE html", tmp[1])){
ret <- data.frame()
print("No table returned, no data...")
}else{
start <- which(tmp=="tab delimited data:") + 1
if(grepl("DOCTYPE html", tmp[1])){
ret <- data.frame()
print("No records found for this week/year")
}else{
end <- min(which(tmp=="")[which(tmp=="") > 20])
df <- read.table(textConnection(tmp[start:end]), sep="\t", skip=19,
stringsAsFactors=FALSE, header=FALSE)
# remove all NA cols
df <- df[,colSums(is.na(df))<nrow(df)]
ret <- df
}
}
return(ret)
}
df <- read_MMWR_table(year=2001, week=12)
> head(df)
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 W.N. CENTRAL 2,534 3,688 61 102 11 5 2 11 14
2 Minn. 411 723 - - 1 1 - 8 6
3 Iowa 202 224 - - 2 2 - - -
4 Mo. 1,013 1,803 58 98 5 2 1 3 3
5 N. Dak. 9 11 - - - - - - -
6 S. Dak. 47 61 - - - - - - -
그것은 그들이 data.cdc.gov에 게시 한 모든처럼 보인다는 2,014에서 2,016 사이 (https://data.cdc.gov/browse?limitTo=datasets&q=legionellosis&sortBy=relevance&utf8=%E2%9C%입니다 93). 이전 데이터의 경우 wonder.cdc.gov를 통과해야합니다. – chrismetcalf
@chrismetcal 예, 그것이 내 모든 데이터가있는 이상한 앱의 삶입니다. 파일을 하나씩 내보내지 않고 내 데이터를 가져 오는 방법을 알지 못합니다. 어떤 제안. – Meli