2015年9月25日 星期五

在R語言內劃中國地圖 (Drawing China map in R statistical package)

首先設定好了文件的路徑及要使用的統計包呵~

setwd("路徑, 記得文件夾之間是 / ")

#install.packages("maptools") 要使用這個統計包.
library(maptools)

#install.packages("mapproj")
library(mapproj)

mydat<-readShapePoly("文件名")
plot(mydat) #其實只要輸入這個命令, 就會出到地圖了!

library(ggplot2) #但想圖靚些... 就要用ggplot2統計包

mymap<-ggplot(data=fortify(mydat))+
  geom_polygon(aes(x=long,y=lat,group=id),col="black",fill=I("green"))+
  theme_grey()
print(mymap+coord_map())
print(mymap+coord_map(projection="azequidistant"))

#fortify() 是要將shp地圖文件, 轉回普通的文件啊.
#geom_polygon()是專用來劃地圖文件的, 其中的x是經度, y是緯度, col是地圖邊界的顏色, fill是地圖的底色
#projection="azequidistant" 是使地圖呈球面顯現...


temp<-coordinates(mydat) #加入地圖的經緯度
temp=as.data.frame(temp) #將地圖轉為普通文件格式
temp$NAME=iconv(mydat$name_cn) #在普通文件內, 對應經緯度加入地區名稱
mymap+geom_text(aes(x=V1,y=V2,label=NAME),data=temp)

#上述的都是加上地區名字的命令

    效果也是不錯的,



2015年9月21日 星期一

在R語言內劃流行病學曲線圖 (Drawing Epidemic curve in R statistical package!)

    以H7N9的數據作為例子吧!

setwd("設定路徑-記得是: /")

#使用epitools內的epicurve.weeksepicurve.months等, 其實還有很多的, 可在RStudio內點epitools選...
library(epitools)

#使用讀入Excel的功能
library(readxl)
h7n9<-read_excel("文件名.xls")

h7n9$onset_date<-as.Date(h7n9$onset_date)
h7n9.week<-epicurve.weeks(h7n9$onset_date,format="%y-%m-%d",axisnames=F,legend="H7N9 week cases",xlab="Weeks",ylab="Cases no",col="green",segments=TRUE)

#format="%y-%m-%d" 時間變項的格式,
#axisnames=F要X軸的名義, 但我不要, 因為顯示出來的是一串數字, 不是週數,
#legend="H7N9 week cases",
#xlab="Weeks",
#ylab="Cases no",
#col="green",
#segments=TRUE 是否要以每細格代表1個案

#設定X軸, 這樣會好睇D!
axis(1,at=h7n9.week$xvals,labels=h7n9.week$cweek)

#設定圖題
title("H7N9週流行曲線")

參考資料: http://www.elsenburg.com/vetepi/BPEL/BPEL_2014_05_EpidemicCurve.pdf

完成作品,都不錯的...
[更新: 2016/1/1]
h7n9<-read.csv("H7N920160115.csv",header = T)
h7n9$onset_date<-as.Date(h7n9$onset_date)
library(epitools)
h7n9.week<-epicurve.weeks(h7n9$onset_date, format = "%Y/%m/%d",segments=TRUE,strata = h7n9$infect_pro,xlab="Weeks",col=h7n9$infect_pro,axisnames=F,main="H7N9 update to 2016/1/1")
axis(1,at=h7n9.week$xvals,labels=paste(h7n9.week$cyear,h7n9.week$cweek,sep = "-"))

2015年9月13日 星期日

安裝epicalc(流行病學統計包)在R語言內 (Installing the "epicalc" package to R statistical software)

    R統計軟件好玩之處, 除了它是免費、更新很快之外, 更是因它的擴展包很多, 且免費! 所以可以根據需要而安裝, 不受任何限制!!!
    作為流行病與衛生統計學專業的我, 當然也在研究其中...
    在R語言內, 處理流行病學資料分析的統計包有一些, 但以"epicalc"統計包最為出名和內容齊全... 但在安裝時, 會出現: 已過期了---的訊息...

install.packages("epicalc")
Warning in install.packages : package 'epicalc' is not available (for R version 3.3.2)

    在網上找了一下它的解決方法如下:
# Download package tarball from CRAN archive
url <- "http://cran.r-project.org/src/contrib/Archive/epicalc/epicalc_2.15.1.0.tar.gz"
pkgFile <- "epicalc_2.15.1.0.tar.gz"
download.file(url = url, destfile = pkgFile)
# Install package
install.packages(pkgs=pkgFile, type="source", repos=NULL)

* installing *source* package ‘epicalc’ ...
** package ‘epicalc’ successfully unpacked and MD5 sums checked
** R
** data
** demo
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (epicalc)

# Delete package tarball
unlink(pkgFile)
    經過運行後, 可以正確地安裝epicalc了! ( 謝謝偉大的互聯網!)

參考資料: http://blog.sergiouri.be/2015/06/install-epicalc-in-r.html

[更新 2016-11-17]
今日我在 R-3.3.2, RStudio 1.0.44, Windows 7的環境下, 試著安裝 epicalc_2.15.1.0.tar.gz
結果直接安裝即可, 不用以上的方法...

[更新 2017-5-20]
epicalc的替代包是epiDisplay, 可直接在R軟件內安裝了...

我家小孩沒電玩 (There are no video games of my children...)

    記得約在上年的年底, 應邀寫了如下的一篇文章, 它被刊登於百分百家長雜誌第43期內! 期望能對視頻遊戲引起近視的現象, 以及其對小朋友的影響作一簡介...