独自の列ヘッダーを追加し、この関数を使用して年数と週数をループする必要があります。 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に投稿したすべては、2014年から2016年(https://data.cdc.gov/browse?limitTo=datasets&q=legionellosis&sortBy=relevance&utf8=%E2%9C%であるように見えます93)。古いデータの場合、wonder.cdc.govを経由する必要があります。 – chrismetcalf
@chrismetcalはい、これは私のすべてのデータを持つワンダーアプリの生き方です。ファイルを1つずつエクスポートせずにデータを取得する方法はわかりません。助言がありますか。 – Meli