原程式碼

使用select函式與table函式:

library(TWspdata)
library(dplyr)
library(sf)

mrtstation <- select(taipei_mrt_station, Zh_tw)
table(mrtstation)
## Error in order(y): 類型 'list' 尚未在 'orderVector1' 中實作

出現警告訊息主要是因為使用select函式所得到的mrtstation仍然是地理資料(如下表格,其中含有geometry欄位),此情況下不可以使用table函式。

Zh_tw geometry
動物園 POINT (308496.3 2765704)
木柵 POINT (307852.9 2765705)
萬芳社區 POINT (307344.1 2765739)
萬芳醫院 POINT (306334.7 2765818)
辛亥 POINT (306226.3 2766497)
麟光 POINT (306400.8 2767942)
六張犁 POINT (305811.6 2768529)
科技大樓 POINT (304846 2768781)
大安 POINT (304732.6 2769577)
忠孝復興 POINT (304996.9 2770512)
南京復興 POINT (304919.3 2771653)
中山國中 POINT (304906.5 2772628)
松山機場 POINT (305692 2772859)
大直 POINT (305158 2774687)
劍南路 POINT (306042.4 2775289)
西湖 POINT (307218.4 2774998)
港墘 POINT (308019.6 2774770)
文德 POINT (309012.9 2774595)
內湖 POINT (309955 2775177)
大湖公園 POINT (310746.9 2775195)
葫洲 POINT (311249.9 2773969)
東湖 POINT (311695.4 2773389)
南港軟體園區 POINT (312048.7 2772555)
南港展覽館 POINT (312239 2772002)
象山 POINT (307533 2769487)
台北101/世貿 POINT (306882 2769536)
信義安和 POINT (305737.4 2769548)
大安 POINT (304732.6 2769577)
大安森林公園 POINT (304105 2769565)
東門 POINT (303359.5 2769636)
中正紀念堂 POINT (302301.1 2769507)
台大醫院 POINT (302070 2770462)
台北車站 POINT (302208.7 2771007)
中山 POINT (302503.6 2771707)
雙連 POINT (302533.9 2772256)
民權西路 POINT (302420.9 2772784)
圓山 POINT (302466.4 2773788)
劍潭 POINT (302953.3 2775207)
士林 POINT (303077.9 2776236)
芝山 POINT (302702.3 2777257)
明德 POINT (302320 2778041)
石牌 POINT (301994 2778554)
唭哩岸 POINT (301049.6 2779259)
奇岩 POINT (300534 2779769)
北投 POINT (300280.1 2780471)
新北投 POINT (300676 2781039)
復興崗 POINT (298947.6 2781095)
忠義 POINT (297724.3 2780363)
關渡 POINT (297091.3 2779761)
竹圍 POINT (296335.8 2781020)
紅樹林 POINT (296253.7 2782913)
淡水 POINT (294938.6 2784432)
新店 POINT (304270.3 2761190)
新店區公所 POINT (304653.7 2762280)
七張 POINT (304820.3 2763168)
小碧潭 POINT (303569.4 2762768)
大坪林 POINT (304651 2763973)
景美 POINT (304581.6 2765092)
萬隆 POINT (304407.1 2766105)
公館 POINT (303932.1 2767521)
台電大樓 POINT (303302.3 2768178)
古亭 POINT (302767.5 2768801)
中正紀念堂 POINT (302301.1 2769507)
小南門 POINT (301553.8 2769816)
西門 POINT (301278.2 2770529)
北門 POINT (301477.7 2771363)
中山 POINT (302503.6 2771707)
松江南京 POINT (303763.4 2771720)
南京復興 POINT (304919.3 2771653)
台北小巨蛋 POINT (305751.6 2771598)
南京三民 POINT (306978.6 2771610)
松山 POINT (308290.6 2771453)
南勢角 POINT (301407 2764774)
景安 POINT (300989.1 2765199)
永安市場 POINT (301602.3 2766196)
頂溪 POINT (302025.3 2767411)
古亭 POINT (302767.5 2768801)
東門 POINT (303359.5 2769636)
忠孝新生 POINT (303804.2 2770591)
松江南京 POINT (303763.4 2771720)
行天宮 POINT (303790.8 2772445)
中山國小 POINT (303129.4 2772822)
民權西路 POINT (302420.9 2772784)
大橋頭 POINT (301756.4 2772878)
台北橋 POINT (300502.6 2772857)
菜寮 POINT (299580.5 2772453)
三重 POINT (298855.5 2772036)
先嗇宮 POINT (297590.8 2770991)
頭前庄 POINT (296584.8 2770258)
新莊 POINT (295630 2769850)
輔大 POINT (293971.7 2769480)
丹鳳 POINT (292629.5 2769064)
迴龍 POINT (291555.5 2768289)
三重國小 POINT (300140 2773654)
三和國中 POINT (299107 2774335)
徐匯中學 POINT (298414.4 2774778)
三民高中 POINT (297748.7 2775323)
蘆洲 POINT (296873.4 2775995)
頂埔 POINT (292459.2 2761426)
永寧 POINT (294035.1 2762173)
土城 POINT (294859.7 2762875)
海山 POINT (295300.5 2764225)
亞東醫院 POINT (295672.8 2765663)
府中 POINT (296356.5 2766794)
板橋 POINT (296660.2 2767388)
新埔 POINT (297236.9 2768437)
江子翠 POINT (297689.9 2769213)
龍山寺 POINT (300488.8 2769779)
西門 POINT (301278.2 2770529)
台北車站 POINT (302208.7 2771007)
善導寺 POINT (302862.3 2770829)
忠孝新生 POINT (303804.2 2770591)
忠孝復興 POINT (304996.9 2770512)
忠孝敦化 POINT (305544.3 2770488)
國父紀念館 POINT (306287.5 2770476)
市政府 POINT (307081.8 2770453)
永春 POINT (308143 2770426)
後山埤 POINT (308753.7 2770857)
昆陽 POINT (309856.6 2771498)
南港 POINT (311242.5 2771678)
南港展覽館 POINT (312239 2772002)

修正方法

我們可以換個方法,直接利用$來擷取原始taipei_mrt_station地理資料中的Zh_tw變數,如下:

mrtstation_num=table(mrtstation$Zh_tw)
mrtstation_num
## 
##         七張     三民高中     三和國中         三重     三重國小         土城 
##            1            1            1            1            1            1 
##         士林         大安 大安森林公園       大坪林         大直     大湖公園 
##            1            2            1            1            1            1 
##       大橋頭       小南門       小碧潭         中山     中山國小     中山國中 
##            1            1            1            2            1            1 
##   中正紀念堂         丹鳳         內湖         公館       六張犁         文德 
##            2            1            1            1            1            1 
##         木柵         北投         北門         古亭     台大醫院 台北101/世貿 
##            1            1            1            2            1            1 
##   台北小巨蛋     台北車站       台北橋     台電大樓       市政府     民權西路 
##            1            2            1            1            1            2 
##     永安市場         永春         永寧         石牌       先嗇宮       江子翠 
##            1            1            1            1            1            1 
##         竹圍       行天宮         西門         西湖         辛亥     亞東醫院 
##            1            1            2            1            1            1 
##         奇岩         府中     忠孝復興     忠孝敦化     忠孝新生         忠義 
##            1            1            2            1            2            1 
##         昆陽         明德         東門         東湖         松山     松山機場 
##            1            1            2            1            1            1 
##     松江南京         板橋         芝山     信義安和     南京三民     南京復興 
##            2            1            1            1            1            2 
##         南港   南港展覽館 南港軟體園區       南勢角       後山埤     科技大樓 
##            1            2            1            1            1            1 
##       紅樹林     徐匯中學         海山         迴龍       動物園       唭哩岸 
##            1            1            1            1            1            1 
##   國父紀念館         淡水         頂埔         頂溪       善導寺       復興崗 
##            1            1            1            1            1            1 
##         景安         景美         港墘         菜寮         象山         圓山 
##            1            1            1            1            1            1 
##       新北投         新店   新店區公所         新埔         新莊     萬芳社區 
##            1            1            1            1            1            1 
##     萬芳醫院         萬隆         葫洲         輔大       劍南路         劍潭 
##            1            1            1            1            1            1 
##       頭前庄       龍山寺         雙連         關渡         蘆洲         麟光 
##            1            1            1            1            1            1

最後可以透過以下程式碼,擷取含有兩個以上車站的站名:

# 數量不等於1,表示是轉乘站
mrtstation_num!=1
## 
##         七張     三民高中     三和國中         三重     三重國小         土城 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##         士林         大安 大安森林公園       大坪林         大直     大湖公園 
##        FALSE         TRUE        FALSE        FALSE        FALSE        FALSE 
##       大橋頭       小南門       小碧潭         中山     中山國小     中山國中 
##        FALSE        FALSE        FALSE         TRUE        FALSE        FALSE 
##   中正紀念堂         丹鳳         內湖         公館       六張犁         文德 
##         TRUE        FALSE        FALSE        FALSE        FALSE        FALSE 
##         木柵         北投         北門         古亭     台大醫院 台北101/世貿 
##        FALSE        FALSE        FALSE         TRUE        FALSE        FALSE 
##   台北小巨蛋     台北車站       台北橋     台電大樓       市政府     民權西路 
##        FALSE         TRUE        FALSE        FALSE        FALSE         TRUE 
##     永安市場         永春         永寧         石牌       先嗇宮       江子翠 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##         竹圍       行天宮         西門         西湖         辛亥     亞東醫院 
##        FALSE        FALSE         TRUE        FALSE        FALSE        FALSE 
##         奇岩         府中     忠孝復興     忠孝敦化     忠孝新生         忠義 
##        FALSE        FALSE         TRUE        FALSE         TRUE        FALSE 
##         昆陽         明德         東門         東湖         松山     松山機場 
##        FALSE        FALSE         TRUE        FALSE        FALSE        FALSE 
##     松江南京         板橋         芝山     信義安和     南京三民     南京復興 
##         TRUE        FALSE        FALSE        FALSE        FALSE         TRUE 
##         南港   南港展覽館 南港軟體園區       南勢角       後山埤     科技大樓 
##        FALSE         TRUE        FALSE        FALSE        FALSE        FALSE 
##       紅樹林     徐匯中學         海山         迴龍       動物園       唭哩岸 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##   國父紀念館         淡水         頂埔         頂溪       善導寺       復興崗 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##         景安         景美         港墘         菜寮         象山         圓山 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##       新北投         新店   新店區公所         新埔         新莊     萬芳社區 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##     萬芳醫院         萬隆         葫洲         輔大       劍南路         劍潭 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE 
##       頭前庄       龍山寺         雙連         關渡         蘆洲         麟光 
##        FALSE        FALSE        FALSE        FALSE        FALSE        FALSE
# 因此可以透過索引回傳TRUE的資料
mrtstation_num[mrtstation_num!=1]
## 
##       大安       中山 中正紀念堂       古亭   台北車站   民權西路       西門 
##          2          2          2          2          2          2          2 
##   忠孝復興   忠孝新生       東門   松江南京   南京復興 南港展覽館 
##          2          2          2          2          2          2
# 並且利用rownames函式將矩陣名稱(站名)列出
rownames(mrtstation_num[mrtstation_num!=1])
##  [1] "大安"       "中山"       "中正紀念堂" "古亭"       "台北車站"  
##  [6] "民權西路"   "西門"       "忠孝復興"   "忠孝新生"   "東門"      
## [11] "松江南京"   "南京復興"   "南港展覽館"

以上是其中一種寫法,不過要記得有些站點並沒有被偵測出,如北投、七張,請務必自行手動新增。

如果其他同學有遇到類似問題,再麻煩分享!謝謝!