0

各国の道路交通事故による死亡者数のマッピングに取り組んでいます。次のコードを使用して、WHO からデータを取得しました。

    library(XML)
    col <- "http://apps.who.int/gho/athena/data/GHO/RS_196,RS_198.html?profile=ztable&filter=COUNTRY:*" 
    col.doc <- htmlParse(col)
    col.tabs <- readHTMLTable(col.doc)
    colDF <- as.data.frame(col.tabs)
    colDF$Country <- colDF$NULL.COUNTRY

    colDeathTot <- colDF[seq(1, nrow(colDF), 2), ]
    colDeathTot$TotalDeaths <- colDeathTot$NULL.NUMERIC.VALUE

次に、「gvisGeoChart」を使用してデータをマッピングします。

    install.packages("googleVis")
    library(googleVis)

    WorldCollisions <- gvisGeoChart(colDeathTot, 
        locationvar="NULL.COUNTRY", colorvar="TotalDeaths", 
        options=list(displayMode="regions"), 
        chartid="GeoChart_RoadDeaths_World")
    plot(WorldCollisions)

問題は、地図上のデータが正しくないことです。たとえば、カナダの場合、データフレームが 2296 の場合、マップ上で 126 を取得します。これについて何か考えはありますか? データは「row.names」変数から来ているのではないかと思いましたが、そうではありません。国が正しく一致していない可能性がありますか?

4

1 に答える 1

1

列はすべて FACTOR 変数になります (つまり、カナダは偶然にも 126 です)。試す:

str(colDeathTot)

これを克服するために私は変わりました

colDeathTot$TotalDeaths <- colDeathTot$NULL.NUMERIC.VALUE

colDeathTot$TotalDeaths <- as.numeric(as.character(colDeathTot$NULL.NUMERIC.VALUE))

そしてそれはうまくいくようです。これらは交通事故死の絶対数であるため、中国では 2010 年に 275,983 人の死傷者が出ており、インドがそれに続いています。人口規模に関連して数字を入れることは、声明を強化するための良い考えです.

于 2014-04-16T06:51:38.693 に答える