注意:
1.實際操作時,讀取檔案的路徑可能要重新調整:
2.目前使用 R 3.6.0 版,套件皆無須 install
cancer <- read.csv("C:\\Users\\User\\Downloads\\癌症發生統計.csv",header=T)
看看資料集的摘要統計
summary(cancer)
## 癌症診斷年 性別 縣市別 癌症別
## Min. :1979 女 :26517 台閩地區: 4649 全癌症 : 2546
## 1st Qu.:1989 不分男女:32282 台北市 : 4533 肝及肝內膽管 : 2495
## Median :1998 男 :26522 新北市 : 4528 肺、支氣管及氣管: 2488
## Mean :1998 高雄市 : 4428 胃 : 2485
## 3rd Qu.:2007 台中市 : 4413 結直腸 : 2457
## Max. :2015 台南市 : 4336 鼻咽 : 2423
## (Other) :58434 (Other) :70427
## 年齡標準化發生率..WHO.2000世界標準人口..每10萬人口. 癌症發生數
## Min. : 0.00 Min. : 1.0
## 1st Qu.: 0.70 1st Qu.: 3.0
## Median : 2.30 Median : 11.0
## Mean : 11.90 Mean : 178.5
## 3rd Qu.: 7.15 3rd Qu.: 49.0
## Max. :408.26 Max. :105156.0
##
## 平均年齡 年齡中位數 粗率..每10萬人口.
## Min. : 0.00 Min. : 0.00 Min. : 0.00
## 1st Qu.: 49.10 1st Qu.: 50.00 1st Qu.: 0.70
## Median : 58.00 Median : 59.00 Median : 2.32
## Mean : 55.45 Mean : 56.14 Mean : 13.50
## 3rd Qu.: 65.00 3rd Qu.: 66.50 3rd Qu.: 7.91
## Max. :105.00 Max. :105.00 Max. :648.56
##
看看資料集的前六筆資料
head(cancer)
## 癌症診斷年 性別 縣市別 癌症別
## 1 1979 不分男女 台閩地區 口腔、口咽及下咽
## 2 1979 不分男女 台北市 口腔、口咽及下咽
## 3 1979 不分男女 台中市 口腔、口咽及下咽
## 4 1979 不分男女 台南市 口腔、口咽及下咽
## 5 1979 不分男女 高雄市 口腔、口咽及下咽
## 6 1979 不分男女 基隆市 口腔、口咽及下咽
## 年齡標準化發生率..WHO.2000世界標準人口..每10萬人口. 癌症發生數 平均年齡
## 1 3.40 439 53.37
## 2 3.85 65 52.00
## 3 4.16 45 54.18
## 4 1.58 19 55.79
## 5 2.10 32 48.56
## 6 3.93 10 56.70
## 年齡中位數 粗率..每10萬人口.
## 1 55.0 2.50
## 2 55.0 2.96
## 3 55.0 2.88
## 4 57.0 1.24
## 5 50.0 1.49
## 6 59.5 2.90
看看資料集的維度
dim(cancer)
## [1] 85321 9
將變數名稱中太過冗長的部分做修改
names(cancer) <- c("癌症診斷年","性別","縣市別","癌症別","WHO2000_p100k","癌症發生數","平均年齡","年齡中位數","p100k")
再看看資料集的前六筆資料,檢查名稱是否已調整
head(cancer)
## 癌症診斷年 性別 縣市別 癌症別 WHO2000_p100k 癌症發生數
## 1 1979 不分男女 台閩地區 口腔、口咽及下咽 3.40 439
## 2 1979 不分男女 台北市 口腔、口咽及下咽 3.85 65
## 3 1979 不分男女 台中市 口腔、口咽及下咽 4.16 45
## 4 1979 不分男女 台南市 口腔、口咽及下咽 1.58 19
## 5 1979 不分男女 高雄市 口腔、口咽及下咽 2.10 32
## 6 1979 不分男女 基隆市 口腔、口咽及下咽 3.93 10
## 平均年齡 年齡中位數 p100k
## 1 53.37 55.0 2.50
## 2 52.00 55.0 2.96
## 3 54.18 55.0 2.88
## 4 55.79 57.0 1.24
## 5 48.56 50.0 1.49
## 6 56.70 59.5 2.90
透過 attach
指令將變數與cancer資料及產生關連
attach(cancer)
由前面 summary
指令的輸出結果中,可看出 性別
變項包含 男
、女
、不分男女
等水準,縣市別
變項除了各行政區還包含 台閩地區
,癌症別
當中還以一個定義不明的 全癌症
的水準,顯見資料有重複呈現的情況,宜先做適度分割處理,因此以下先依據 性別
變項將資料分割為
等三個區塊
cancer_mf <- cancer[性別=="不分男女",]
cancer_m <- cancer[性別=="男",]
cancer_f <- cancer[性別=="女",]
再將 cancer_mf
細分為 cancer_mf_c1
(台閩地區) 與 cancer_mf_c2
(各行政區),並觀察其維度
cancer_mf_c1 <- cancer[性別=="不分男女" & 縣市別 == "台閩地區",]
cancer_mf_c2 <- cancer[性別=="不分男女" & 縣市別 != "台閩地區",]
dim(cancer_mf)
## [1] 32282 9
dim(cancer_mf_c1)
## [1] 1676 9
dim(cancer_mf_c2)
## [1] 30606 9
將 cancer_m
細分為 cancer_m_c1
(台閩地區) 與 cancer_m_c2
(各行政區),並觀察其維度
cancer_m_c1 <- cancer[性別=="男" & 縣市別 == "台閩地區",]
cancer_m_c2 <- cancer[性別=="男" & 縣市別 != "台閩地區",]
dim(cancer_m)
## [1] 26522 9
dim(cancer_m_c1)
## [1] 1450 9
dim(cancer_m_c2)
## [1] 25072 9
將 cancer_f
細分為 cancer_f_c1
(台閩地區) 與 cancer_f_c2
(各行政區),並觀察其維度
cancer_f_c1 <- cancer[性別=="女" & 縣市別 == "台閩地區",]
cancer_f_c2 <- cancer[性別=="女" & 縣市別 != "台閩地區",]
dim(cancer_f)
## [1] 26517 9
dim(cancer_f_c1)
## [1] 1523 9
dim(cancer_f_c2)
## [1] 24994 9
接下來載入plyr 套件,以利後續 aggregate 指令的運用 (以下僅針對cancer_mf_c1_01分析,即 台閩地區
、 不分男女
)
library(plyr)
將變項 癌症發生數
透過不同的 癌症別
,考慮 台閩地區
在 不分男女
的情況下 分別計算總和(68-104年的整體平均),並列印顯示
cancer_mf_c1_01 <- aggregate(癌症發生數~癌症別,cancer_mf_c1 ,each(sum))
cancer_mf_c1_01
## 癌症別 癌症發生數
## 1 口腔、口咽及下咽 118906
## 2 女性乳房 172672
## 3 子宮 739
## 4 子宮頸 78978
## 5 子宮體 27605
## 6 小腸 7191
## 7 不明原發部位 25703
## 8 主唾液腺 5444
## 9 甲狀腺 46577
## 10 白血病 40444
## 11 皮膚 58232
## 12 全癌症 1915930
## 13 何杰金氏淋巴瘤 3503
## 14 卵巢、輸卵管及寬韌帶 25177
## 15 男性乳房 947
## 16 肝及肝內膽管 247171
## 17 其他女性生殖器官 4114
## 18 其他內分泌腺 1899
## 19 其他分界不明的部位 1685
## 20 其他男性生殖器官 2639
## 21 其他神經系統 1958
## 22 呼吸系統與胸內器官之其他分界不明部位 13
## 23 肺、支氣管及氣管 228504
## 24 非何杰金氏淋巴瘤 36513
## 25 後腹膜腔及腹膜 4083
## 26 胃 109790
## 27 食道 43438
## 28 消化器官其他分界不明部位 1027
## 29 胰 33706
## 30 胸腺、心臟與中隔 6082
## 31 胸膜 1057
## 32 骨、關節及關節軟骨 5238
## 33 眼及淚腺 1781
## 34 喉 15674
## 35 結直腸 258046
## 36 結締組織、皮下組織及其他軟組織 11302
## 37 腎 20650
## 38 腎盂及其他泌尿系統 27295
## 39 睪丸 3785
## 40 腦 18562
## 41 膀胱 50087
## 42 鼻咽 49299
## 43 鼻腔、中耳及副鼻竇 5335
## 44 漿細胞瘤 9439
## 45 膽囊及肝外膽管 19031
## 46 攝護腺 71384
將變項 癌症發生數
透過不同的 癌症別
,考慮 各行政區
在 不分男女
的情況下 分別計算總和(68-104年的整體總和),並列印顯示
cancer_mf_c1_02 <- aggregate(癌症發生數~癌症別,cancer_mf_c2 ,each(sum))
cancer_mf_c1_02
## 癌症別 癌症發生數
## 1 口腔、口咽及下咽 118555
## 2 女性乳房 171875
## 3 子宮 719
## 4 子宮頸 77030
## 5 子宮體 27479
## 6 小腸 7152
## 7 不明原發部位 25556
## 8 主唾液腺 5395
## 9 甲狀腺 46388
## 10 白血病 40256
## 11 皮膚 57754
## 12 全癌症 1904362
## 13 何杰金氏淋巴瘤 3473
## 14 卵巢、輸卵管及寬韌帶 25029
## 15 男性乳房 934
## 16 肝及肝內膽管 246318
## 17 其他女性生殖器官 4026
## 18 其他內分泌腺 1894
## 19 其他分界不明的部位 1639
## 20 其他男性生殖器官 2605
## 21 其他神經系統 1950
## 22 呼吸系統與胸內器官之其他分界不明部位 12
## 23 肺、支氣管及氣管 227259
## 24 非何杰金氏淋巴瘤 36460
## 25 後腹膜腔及腹膜 4066
## 26 胃 108829
## 27 食道 43141
## 28 消化器官其他分界不明部位 998
## 29 胰 33587
## 30 胸腺、心臟與中隔 6068
## 31 胸膜 1052
## 32 骨、關節及關節軟骨 5181
## 33 眼及淚腺 1754
## 34 喉 15554
## 35 結直腸 256889
## 36 結締組織、皮下組織及其他軟組織 11219
## 37 腎 20578
## 38 腎盂及其他泌尿系統 27198
## 39 睪丸 3761
## 40 腦 18471
## 41 膀胱 49757
## 42 鼻咽 48671
## 43 鼻腔、中耳及副鼻竇 5269
## 44 漿細胞瘤 9400
## 45 膽囊及肝外膽管 18954
## 46 攝護腺 71237
比較上述資料,兩者之各項的總和間存在些微差異,估計差異部分為連江縣(馬祖)或金門縣未分開呈現的部分數據
將 台閩地區
總和資料繪製圓餅圖及長條圖
pie(cancer_mf_c1_01[,2],cancer_mf_c1_01[,1])
barplot(cancer_mf_c1_01[,2], names.arg = cancer_mf_c1_01[,1])
癌症別太多,因此圖形呈現效果不佳。不過由圓餅圖可以約略看出 全癌症
總和約略等於其他各項癌症的總和。因原始資料中未明確定義,稍後分項比較時將予以剔除。接下來載入ggplot2 套件,繪製長條圖
library(ggplot2)
## Registered S3 methods overwritten by 'ggplot2':
## method from
## [.quosures rlang
## c.quosures rlang
## print.quosures rlang
ggplot(cancer_mf_c1_01,aes(x=cancer_mf_c1_01$癌症別,y=cancer_mf_c1_01$癌症發生數))+geom_bar(stat="identity")
同樣因癌症別太多,因此圖形呈現效果不佳。由 dim
指令得知有46個levels
dim(cancer_mf_c1_01)
## [1] 46 2
調整呈現方式,繪製 Cleveland 點圖
ggplot(cancer_mf_c1_01,aes(x=cancer_mf_c1_01$癌症別,y=cancer_mf_c1_01$癌症發生數))+geom_point(size=3)+theme_bw()+
theme(axis.text.x = element_text(angle=60,hjust=1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour="grey60",linetype = "dashed"))
如前所述, 全癌症
總和約略等於其他各項癌症的總和。因原始資料中未明確定義,故予以剔除
cancer_mf_c1_01a <- cancer_mf_c1_01[-12,]
下圖為予以剔除後的結果
ggplot(cancer_mf_c1_01a,aes(x=cancer_mf_c1_01a$癌症別,y=cancer_mf_c1_01a$癌症發生數))+geom_point(size=3)+theme_bw()+
theme(axis.text.x = element_text(angle=60,hjust=1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour="grey60",linetype = "dashed"))
考慮 癌症診斷年
、癌症別
,分別計算各項癌症發生數的總和
cancer_mf_c1_02 <- aggregate(癌症發生數~癌症診斷年+癌症別,cancer_mf_c1 ,each(sum))
取出2015年資料,並剔除 全癌症
類別
cancer_2015 <- cancer_mf_c1_02[cancer_mf_c1_02$癌症診斷年==2015,]
cancer_2015 <- cancer_2015[-12,]
繪製 Cleveland 點圖
ggplot(cancer_2015,aes(x=cancer_2015$癌症別,y=cancer_2015$癌症發生數))+geom_point(size=3)+
theme_bw()+
theme(axis.text.x = element_text(angle=60,hjust=1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour="grey60",linetype = "dashed"))
繪製 Cleveland 點圖 (依據癌症發生數排序)
ggplot(cancer_2015,aes(x=reorder(cancer_2015$癌症別,cancer_2015$癌症發生數),y=cancer_2015$癌症發生數))+geom_point(size=3)+
theme_bw()+
theme(axis.text.x = element_text(angle=60,hjust=1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour="grey60",linetype = "dashed"))
以直式呈現 Cleveland 點圖 (依據癌症發生數排序)
ggplot(cancer_2015,aes(y=reorder(cancer_2015$癌症別,cancer_2015$癌症發生數),x=cancer_2015$癌症發生數))+geom_point(size=3)+
theme_bw()+
theme(axis.text.x = element_text(angle=20,hjust=1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour="grey60",linetype = "dashed"))