package dplyr

cheat sheet
setwd('~/lecture/riii')
load('Statistics/applenews.RData')
str(applenews)
## 'data.frame':    1500 obs. of  5 variables:
##  $ content : chr  "\n                                        (更新:新增影片)想要透過刮刮樂彩券一夕致富,但他卻用錯方法!台中市一名"| __truncated__ "\n                                        澳洲一名就讀雪梨大學的華裔博士生,日前公開一段燒毀中國護照的影片,還"| __truncated__ "\n                                        【行銷專題企劃】房價高高在上,沒錢買房沒關係,但你認為自己是聰明的租"| __truncated__ "\n                                        本內容由中央廣播電臺提供        美國國防部長卡特(Ash Carter)今天(15日"| __truncated__ ...
##  $ title   : chr  "【更新】搶2.2萬彩券刮中1.4萬 沒發財還得入獄" "拿到澳洲護照後 他放火燒中國護照" "【特企】房市大追擊- 租屋這些事情要小心" "【央廣RTI】美菲軍演  美防長南海登艦" ...
##  $ dt      : POSIXct, format: "2016-04-15 14:32:00" "2016-04-15 14:32:00" ...
##  $ category: chr  "社會" "國際" "地產" "國際" ...
##  $ clicked : int  1754 0 0 0 311 24 20 314 27 308 ...
applenews = applenews[,-1]

#install.packages('dplyr')
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.5.2
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#dplyr 的過濾功能
head(filter(applenews, category == "娛樂"))
##                                        title                  dt category
## 1           澎恰恰收女弟子 拱當台灣第一名伶 2016-04-15 14:17:00     娛樂
## 2 【唱新聞】詐騙嗎?R.O.C.有CHINA但不是CHINA 2016-04-15 14:00:00     娛樂
## 3         白曉燕命案19年了 白冰冰「不能忘」 2016-04-15 13:49:00     娛樂
## 4           好萊塢男神好威 女友再當高齡產婦 2016-04-15 13:40:00     娛樂
## 5         隋棠帶兒遠征南台灣 吃成膨皮母子檔 2016-04-15 13:30:00     娛樂
## 6   伊勢谷友介掰了長澤雅美 半同居小16歲辣模 2016-04-15 13:23:00     娛樂
##   clicked
## 1    1749
## 2   11696
## 3    3329
## 4    4307
## 5    4651
## 6    5141
#dplyr 的欄位選取
head(select(applenews,category,clicked))
##   category clicked
## 1     社會    1754
## 2     國際       0
## 3     地產       0
## 4     國際       0
## 5     時尚     311
## 6     財經      24
head(select(filter(applenews,category == '娛樂',clicked >= 100000),category,clicked),3)
##   category clicked
## 1     娛樂  126774
## 2     娛樂  131942
## 3     娛樂  142444
applenews %>%
filter(.,category == '娛樂',clicked >= 100000) %>%
  select(.,category,clicked) %>%
  head(.,3)
##   category clicked
## 1     娛樂  126774
## 2     娛樂  131942
## 3     娛樂  142444
#使用Chaining
applenews %>%
  select(.,category,clicked) %>%
  filter(category == '娛樂') %>%
  head()
##   category clicked
## 1     娛樂    1749
## 2     娛樂   11696
## 3     娛樂    3329
## 4     娛樂    4307
## 5     娛樂    4651
## 6     娛樂    5141

dplyr(續)

## %in% 檢查元素的值
filter(applenews, category %in% c('娛樂','社會'))
##                                                               title
## 1                      【更新】搶2.2萬彩券刮中1.4萬 沒發財還得入獄
## 2                                        同居人女兒熟睡 淫男伸狼爪
## 3                                  澎恰恰收女弟子 拱當台灣第一名伶
## 4                         【驚險有片】BMW撞翻撞公車 後方機車神穿越
## 5                        【唱新聞】詐騙嗎?R.O.C.有CHINA但不是CHINA
## 6                                    九巡翁霸坐展售車? 原因好心酸
## 7                                白曉燕命案19年了 白冰冰「不能忘」
## 8                              催討債務釀衝突 要小弟持槍討債先被抓
## 9                              男翻拍女友手機對話 PO爆料公社控劈腿
## 10                                 好萊塢男神好威 女友再當高齡產婦
## 11                               隋棠帶兒遠征南台灣 吃成膨皮母子檔
## 12                         伊勢谷友介掰了長澤雅美 半同居小16歲辣模
## 13                                 徐佳瑩開唱前驚傳失聲 急診照曝光
## 14                              製酒廢液毒害桃園福興溪 2惡老闆起訴
## 15                         中研院化學所實驗室起火 緊急撲滅無人傷亡
## 16                               不滿人妻被劈腿 她竟上網揭友人姦情
## 17                                   死侍續攤雙喜 花邊教主又有了!
## 18                   馬國50台人將遣中 我代表處動員馬國高層友人協助
## 19                                 台電維修變電箱 受百用戶臨時停電
## 20               【暗黑城市】酒駕男廁所裝屎尿 醫院保全暴衝怒槓記者
## 21                       【更新】甲仙國小拔河隊疑食物中毒 14生送醫
## 22                               愛滋男師上網約炮 嘿咻百男遭判13年
## 23                     【更新】《太陽》完美結局 沉船灣之吻收視最熱
## 24                                  5月大女嬰疑嗆奶 母急奔診所求助
## 25                                 疑濕滑自摔 保全倒臥社區流血不治
## 26                             小三通走私32顆蛋 查獲時雛鳥孵化了!
## 27                      救命錢都A!惡公僕污30萬救濟金 還推責給共犯
## 28                    【更新】搶在翁啟惠返台前 檢調搜索浩鼎等7處 
## 29                             兒拿舊作業改日期矇混 父暴怒猛甩耳光
## 30                     宋慧喬愛國拒代言 台大教授批韓軍「應被唾棄」
## 31                                  【更新】嗲嗲女吹口氣 6萬元飛了
## 32                               天雨路滑疑自撞 騎士走百公尺路倒亡
## 33                      【請回答】六月李易對質實況 出軌X次說清楚!
## 34                                 青年6度性侵男童 判緩刑5年有原因
## 35                            借1200萬不還遭擄痛毆 6煞拿電擊棒伺候
## 36                           好萊塢麻煩精釣到小開!大顆訂婚戒到處閃
## 37                             蒙眼活埋殺人遭判無期 惡煞撇責提再審
## 38                   【還記得他嗎】童星竄高變小鮮肉 拉攏同儕救人氣
## 39                           醉嗆「看三小」孕婦遭推 酒店外爆全武行
## 40                                   豪雨不斷 中橫梨山往大禹嶺落石
## 41                        【特企】三角戀無緣啦!風田愛佼哥 不愛宏正
## 42                             劉愷威被問楊冪超囧 擠不出上次何時見
## 43                                       【壹週刊】原來發哥才是鞋神
## 44                             竹崎鄉主秘代鄉長職 「整晚睡不著覺」
## 45                       肯亞案確定組團赴中 羅瑩雪:最快下周一出發
## 46                                 1小時燒5萬!宋仲基白斬雞變筋肉男
## 47     【網路溫度計】AV女優私密大公開!十大網友最想知道的女優秘辛!
## 48                               【痞客邦】回顧經典名片《銀翼殺手》
## 49                         殺警再爆內幕 出牆妻再嫁黑道鄉長目的曝光
## 50                         【壹週刊】日本寫真女星 在台熱舞替她宣傳
## 51                          【更新】媽趁機性教育 意外揭2女兒淪性奴
## 52                                   酒店外火爆衝突 女警表情成亮點
## 53                          警專生誘姦外拍少女 逼嘿咻790次贖性感照
## 54                           噁心!渣男假好心 逼國小姊妹口愛當新娘
## 55                           噁心!渣男假好心 逼國小姊妹口愛當新娘
## 56                           超級Kobe粉是她! 女神奔球場又哭又尖叫
## 57                           炫咘咘藏梧桐妹 賈靜雯自曝「不愛」原因
## 58                              騎士被夾撞火燒77秒 肇事駕駛只判...
## 59                           連勝文被瞎報特權搭機喊告 三立:已更新
## 60                               斯文男星爭收視寶座 戲拍一半急送醫
## 61                             女主播爆料 全電視台等宋仲基不肯下班
## 62                               笑匠女星膽子超大 把鬼當談心好朋友
## 63                       【法律問蘋果】酒駕緩訴或判無罪 罰單得照繳
## 64                                 「遭性侵不是你的錯」 應勇敢求助
## 65                              【獨家】捨身救妹 長女忍獸父性侵8年
## 66                               李佳薇自認不漂亮 大改造變暴風歌姬
## 67                                 孫盛希為開唱暴瘦 八三夭送保肝丸
## 68                              Miss Ko不當饒舌鄧麗君 變身環球小姐
## 69                                 復航澎湖空難 12分鐘譯文完整公開
## 70                     【有片】《太陽的後裔》喜劇收尾 雙宋激吻甜爆
## 71                         【壹週刊】【有片】近距離直擊李鍾碩的萌帥
## 72                             動力火車演唱會加賣 騎重機飆進小巨蛋
## 73                                   宋茜楊洋熱戀被抓包?SM公司拒認
## 74                                   殘殺好友 他報案未逃呆立現場 
## 75                           殺警爆緋聞情殺 死者母親身體不適掛急診
## 76                                   彰化古物店凶案 竟是好友殺好友
## 77                               新北三重公寓火警 警消搶救幸無傷亡
## 78                   【影片】彰化古物店金錢糾紛 男持鐵架打死合夥人
## 79                【更新】討債集團囂張如狼 包圍檢警還打瞎PUB服務生
## 80                    【獨家】掏空私校職工退撫金 國策顧問100萬交保
## 81                               蕭煌奇草原拍MV沒廁所 不敢喝水憋尿
## 82                     澎湖空難官僚殺人!空軍高勤官打槍塔台拒撥跑道
## 83                         【影片】坐家門乘涼 惡煞登門持槍指頭爆打
## 84                                  Janet抱病站台 想拼做人卻重感冒
## 85                             司法院最新統計 9成詐欺犯判刑不到1年
## 86                                趕著去釣蝦 貨車失控自撞翻車4輕傷
## 87                               【奶姬妹】八兩金有女兒?媽呀有夠像
## 88                       【更新】畫漫畫療癒患者 女學生獲10萬獎學金
## 89                                 公車上有色狼 被害人:絕不原諒  
## 90                       【暖蘋果】公車司機毫不猶豫做這事 感動人心
## 91                               溫流談《太陽的後裔》「會記得很久」
## 92                                   歐陽妮妮穿裙大開腿 霸氣釣男人
## 93                           音樂人不好當!劉喬安撐明星夢先開按摩坊
## 94               【有片】嫁豪門首現身奉送美背 楊千霈「緣份擋不住」
## 95                             【公庫】血汗海鮮  外籍漁工遭層層剝削
## 96                                 贓車借屍還魂 高市警大破竊車集團
## 97                                 假美鈔案 檢調策反掮客轉污點證人
## 98                             毒鴛鴦偷車又行搶 魯肉飯吃到一半遭逮
## 99                           【更新】香蕉太貴買不起 再等幾天就降了
## 100                      【更新】殺警心虛?王焜弘被爆攜大量庫錢拜廟
## 101                        【更新】雨中騎車兩度挨撞 男大生傷重不治
## 102                     【更新】正晶揭露新詐騙案 7百萬存款不翼而飛
## 103                          羅瑩雪再創金句 「泰國人只會講泰國話」
## 104                            遭逆向賓士兇狠砸車 被害人低調不報案
## 105                        今晚迎接完結篇!回味《太陽》10大浪漫鏡頭
## 106                            那些年跨國逮回的詐騙集團 後來怎麼了
## 107                      【更新】坎城影展公布競賽片單 華語片全摃龜
## 108                                 BMW自撞分隔島起火 駕駛昏迷送醫
## 109                            持變造護照遭識破 印度男桃機闖關被抓
## 110                              【有片】女遭惡鄰揮刀毀容 畫面曝光
## 111                咘咘出道梧桐妹不給看 賈靜雯解釋差別待遇因為~~
## 112                          徐潔兒三亞跑神上身 靖王王凱獻初體驗 
## 113                               美女拐拐淡妝奔200公里 攏係為著她
## 114                        【更新】60歲寶媽的第一次 累到沒辦法洗澡
## 115                              炎亞綸秀合照致敬Kobe「我還是哭了」
## 116                          【多圖】這些立委遇到羅瑩雪 全都崩潰了
## 117                            鄰居抱怨佛經太大聲 比丘尼竟揮鋸砍人
## 118                      韓粉過黑色情人節 最想跟宋仲基秀智吃炸醬麵
## 119      【民報】花東鐵6億弊案代誌大條 台鐵亡羊補牢全面體檢鐵路安全
## 120                              拚不過價錢竟亮槍 筍農踢館反遭痛毆
## 121                       【獨家直擊】阿里山採茶工收工 近30人擠1車
## 122                        【獨家】澎湖空難起訴 家屬泣訴:等很久了
## 123                        【有片】孫德榮公司傳承小刀 隔空虧羅志祥
## 124              【更新】台人遭中國紅色通緝 羅瑩雪:「他就死掉了」
## 125                             【更新】大甲媽回鑾 連8年進明道大學
## 126                     太白目!BMW警局前撞採訪車 男疑毒駕自投羅網
## 127                             一再騙錢抓不怕 詐欺慣犯又吸金4千萬
## 128         【影片】澎湖​空難偵結 馬公基地高勤官與塔台人員2人遭起訴
## 129                  【有片】《太陽》喬妹哭技爆發 最高收視竟不是她
## 130                                憲兵濫搜是否違法 北檢近期將偵結
## 131                        「然後他就死掉了」 羅瑩雪造句大賽熱議中
## 132                  【更新】不給魏應充鑽轎腳 《壹周刊》PS媽祖挨告
## 133                          為肯亞案互嗆 司委會通過要求撤換羅瑩雪
## 134                                    雷神超賢慧 半夜為愛女煮消夜
## 135                  【有片】天龍國一位難求 為了停車輾警腳還嗆閉嘴
## 136                       【有片】逆向被叭 垃圾!惡賓士球棒爆打狠K
## 137                                避免被性騷擾 5招3訣教妳反制色狼
## 138                                最夯男神換人!宋仲基搶金秀賢代言
## 139                      【更新】男子涉水試吉普車 突遇爆洪受困沙洲
## 140                                車手出年少!未成年情侶竟是訓練師
## 141                           低價品混充倍思康隱形眼鏡 3萬片流市面
## 142                                     徐若瑄紅眼班太操 抱Q兒取暖
## 143                                   復航墜河空難 檢方預計7月偵結
## 144                                  陸客假自由行 馬祖沿街算命詐財
## 145                        憲兵濫搜案 檢方認定文件非機密民眾不起訴
## 146                       【影片】基隆外海漁船失火 海巡隊馳援救5人
## 147                                        隋棠環保媽媽 紙巾重複用
## 148                              意志不堅卡好賣 男鎖定戒治所前販毒
## 149                                      蔡詩芸穿衣災難 糗變透明人
## 150                           澎湖空難2人遭起訴 正副駕駛涉業務過失
## 151                        【有片】咘咘出道囉!賈靜雯一家現身真人秀
## 152                                  綠島良民乖乖衣 卻壞壞持毒遭逮
## 153                      【影片】幽靈貨車撞水果攤 孕婦挨撞幸運輕傷
## 154                    【有片】為肯亞案互槓 段宜康、羅瑩雪火爆對嗆
## 155                         被挖出舊照黑皮塌鼻 本土劇女神這麼說...
## 156                              廢棄眷舍磚牆轟然倒 居民批軍方可惡
## 157                            蛇精男難得被點讚!他在這裡變「正常」
## 158                  【更新】詐騙成員被拋棄淪遊民 偷車縱火險火燒山
## 159                      【更新】詐騙產業公會感謝聲明 羅瑩雪收到了
## 160                                百公斤原物料倒塌 工人遭壓傷命危
## 161                                  劉子千好直白 演吻戲「很開心」
## 162                                俊秀獻聲《太陽》 通殺韓國音樂榜
## 163                 【有片】人夫眼睛該看哪 小珍妮佛不穿Bra透視登場
## 164                          沙灘車拖拉鼓陣害少年摔癱 駕駛判刑定讞
## 165                      「肯亞案」為何爆發搶人大戰 他說出真正原因
## 166                          麥當勞借刀殺前夫不成 女辯稱借工具防身
## 167                            以為自己也有機會 賤男尾隨女同事性侵
## 168                              霸桌+塗鴉+射飛鏢 惡霸強收保護費 
## 169                              白娘子晃眼23年仍凍齡 反觀許仙……
## 170                            駕船赴馬祖岸邊採貝 陸男非法入境遭逮
## 171                            越線被啪啪免驚 中市光學測照還未啟用
## 172                             舊貨當新品危害東部鐵路 3官商遭聲押
## 173                                挖避邪草去霉運 連關老爺都不幫忙
## 174                                  金賢重官司不斷 被欠千萬告詐欺
## 175                          段宜康拿痰盂批法務部 羅瑩雪:這叫污辱
## 176                               F奶小模不爽遭影射 開譙吳宗憲節目
## 177                                 外公半夜出門購物 孫女爬窗墜8樓
## 178                             分手拒還女軍人2萬 他還逼軍方懲處她
## 179                        李珍妮遭查封6柏金包 怒告米凱莉求償500萬
## 180                        新手爸媽注意 他拋晃滿月兒竟害骨折眼出血
## 181                                澎湖復興空難 地檢署下午偵結起訴
## 182                          音準歌姬被嗆「跩屁」 失去自信在家痛哭
## 183                          【更新】警所旁火燒車 波麗士大人神救援
## 184                             送桶瓦斯來卻少5面金牌 員工尾隨活逮
## 185                          熟女裸照遭PO網 前男友挨告竟說不認識她
## 186                  【壹週刊】林錫山索賄案大突破 行賄廠商認罪交保
## 187                          桃園最多移工城市 首次外文宣導萬安演習
## 188                          立院採購弊案 業者供出林錫山收賄獲交保
## 189                            李珍妮贏了 法院判「賤狗體」道歉有效
## 190                                  秀琴囧變蠟筆小新 竟是XX惹的禍
## 191                                地產女王賣屋踢鐵板 遭控買賣凶宅
## 192                      【更新】疑自撞火燒車 男子燒成白骨身首分離
## 193                            鐵皮違建逃生不易 引發大火恐成鐵棺材
## 194                            【更新】Kobe告別戰 林熙蕾奔球場見證
## 195                         【影片】萬華惡火2死 鄰居疑情侶爭吵釀災
## 196                              小丑上身逼發狂 他送人用過的保險套
## 197                            開曳引車低頭調椅背 夾撞女騎士成焦屍
## 198                                  偷車載小馬子兜風 撞死賣菜老翁
## 199                                李安新片預告首曝光 觀眾鼓掌歡呼
## 200               【更新】國道追撞4人輕重傷 自撞男下車查看輾斷雙腿
## 201                                台東惡少暗夜逞凶 棍棒齊飛砸爛車
## 202                            金宇彬不怕李敏鎬翻臉 帶他女友逛大街
## 203          【痞客邦】《蝙蝠俠對超人:正義曙光》到底為何評價兩極?
## 204                    【更新】詐欺犯回台罪太輕? 羅瑩雪打算這麼做
## 205                            上海立法管控毒星 柯震東房祖名禁露臉
## 206                              【更新】女童說這句話 意外揭媽劈腿
## 207                          強碰南韓國會大選 《太陽的後裔》照吸睛
## 208                            貴婦人妻太閒了 她只好和一些網友嘿咻
## 209                                        和華妃戀愛中?靖王答腔了
## 210                    【明星輕小說】竇智孔落魄時 救汪星人也救自已
## 211                                  被批過氣、整容 陳志朋公開淚談
## 212                    有內情?辣模女友控MP廷廷 「對我做可怕的事」
## 213                          悚!妻半夜爬起來剪這個 老公嚇傻提離婚
## 214                                 萬華惡火2死 是否縱火待檢警釐清
## 215                          男友要娶那個女人! 她怒找降頭師這樣做
## 216                      殺童唯一死刑? 法界人士:恐成凶手尋死方式
## 217                               主播夏嘉璐惹到誰? 被爆料4大缺失
## 218                               2租客送醫亡 住戶:「頂加非違建」
## 219                            1張裸照、2度買凶 殺警鄉長栽在他手上
## 220                                雙碩士摩鐵約砲 25女嘿咻被偷拍 
## 221                               人妻偷吃成性 2個孩子都不是老公的
## 222                              巴基斯坦色狼性侵 有妻小不逐出台灣
## 223                              綠光鄉長看到5個字 200萬買兇殺員警
## 224                                性愛偷拍後 璩美鳳這15年來這樣過
## 225                            疑情侶吵架男友放火 女屋主做筆錄快閃
## 226                            五分埔火警難搶救 警消冒死趴鐵皮灌救
## 227                                    ​鬱男疑心情不佳 租屋處燒炭亡
## 228                        宋仲基《太陽》衝擊金秀賢障礙 激搶收視王
## 229                            力宏辦生日趴送驚喜 老婆正面孕肚見光
## 230                                  陳柏霖韓劇好威 一露臉收視立漲
## 231                    【星鮮貨】綾瀨遙加持優等生大衣 下殺折扣搶翻
## 232                  蟻人看到美國隊長變小粉絲 摸肌塊驚呼「老天!」
## 233                                        演唱會XX太難 考倒宇宙人
## 234                        【狗仔偷拍】好大的派頭 李㼈違停霸氣外露
## 235                    【爆雷15】宋仲基《太陽》陣亡 虐翻喬妹神轉折
## 236                         【有片】雨中見台灣希望 年輕人這樣做...
## 237                           【法律問蘋果】派遣人員可以請育嬰假嗎?
## 238 【公庫】「校園不是軍營、學生不是士兵」 學生團體要求教官退出校園
## 239                          李千娜認了喇舌 談曖昧對象「我們很好」
## 240                【民報】汙這錢太黑心!花東鐵爆5億弊案花檢夜訊追究
## 241                        【更新】強固保全驚爆掏空案 董座20萬交保
## 242                                 T台記者赴馬丘比丘 受不了高山症
## 243                              男子違停不聽勸 持螺絲起子攻擊警員
## 244                                    劉容嘉挑戰跳56樓 挑釁攝影師
## 245                            浩子挖掘黑暗面 想到小孩老婆崩潰痛哭
## 246                         「無視鐵路安全」 無良官商用舊計軸器A錢
## 247                                柯佳嬿戲如人生 總是當女主角的運
## 248                                少女童星萌笑開球 姿勢錯誤小落漆
## 249                        【這不是新聞】水杯出現這個 客人全嚇傻了
## 250                    【更新】台苯10億掏空案收網 天籟董事長遭傳訊
## 251                        台鐵東部鐵路電氣化涉弊案 廉政署帶回21人
## 252         【公庫】低價煤電阻礙綠能 環團籲:多付錢,換好空氣與健康
## 253                                  男星扮皇帝腿軟 自認不是那塊料
## 254                【更新】機警海關逮「毒」熊貓 估可毒害3600萬人次
## 255                                米可白被婆婆趕出家 哭到眼歪嘴斜
## 256                 【公庫】死刑定讞十年後 鄭性澤重回法庭:我沒殺人
## 257                                  豪雨釀山難 62歲男子攀桃山失蹤
## 258                                    林志穎萌照出土 潮襪暴露身份
## 259                              鋼鐵人慘被球棒襲鵰 草泥馬都鄙視他
## 260                            陳志朋淚崩談整容 隱瞞炸傷原因有洋蔥
## 261                                 浩鼎內線交易疑雲 檢調再傳3證人
## 262                          為了幼女不願坐牢 女子拒捕遭警開16槍  
## 263                                美艷辣照吸客 陸女來台日接10男客
## 264                              孫儷雲端抓猴 鄧超的「小三」長這樣
## 265                    【更新】醉漢揮刀出沒醫院 對峙警10分鐘遭制伏
## 266                                雪炫曬心形長髮床照 呼籲國民投票
## 267                                    肯亞案 法務部:台灣有管轄權
## 268                      【告別小燈泡】爸爸首發聲 「仇恨滋長邪惡」
## 269                【壹週刊】誰斗膽讓女皇瑪丹娜尿濕了褲子?【有片】
## 270                 【苦勞網】漁工膳宿遭層層剝削 勞動部執法避重就輕
## 271          【公庫】桃園航道下的聲音:遷移,是對未來更好生活的期待
## 272                【有片】19歲美籍傳教士摔車遭輾 口鼻出血殉道台灣
## 273                           33E瑤瑤偷穿32C張景嵐原味衣...差點撐爆
## 274                                  滿地傷患待援 金門萬安演習逼真
## 275                            王柏傑許瑋甯合體 堅稱「就是朋友」 
## 276                    【更新】茶改場技工噴藥後猝死 家屬指官僚殺人
## 277                             【更新】王焜弘稱心臟病 抵死不測謊 
## 278                          長得不像? 男驗DNA才知2女兒都非親骨肉
## 279                        麻衣1歲兒神力扛麻糬 台塑第4代抓周拿算盤
## 280                           【獨家】晶華酒店有內賊 竟A走客人存酒
## 281                       【肯亞案】被中國帶走的台人 有2人是通緝犯
## 282                  【更新】MP​廷廷有新歡!李優爆「對我做可怕的事」
## 283                              《太陽》編劇金恩淑洩密 結局非爛尾
## 284                【有片】福爾摩斯轉職奇異博士 竟被女光頭打出魂魄
## 285                       【更新】AKB美胸女王駕到!小嶋陽菜貴氣抵台
## 286                        【更新】被同學硬戴小戒指 國二女生痛整晚
## 287                      【肯亞案】組團赴中 羅瑩雪:本來今天要出發
## 288                      【肯亞案】組團赴中 羅瑩雪:本來今天要出發
## 289                          葉毓蘭再嗆肯亞詐騙疑犯 要媒體將心比心
## 290                  【更新】許維恩剛認愛就變心 甜喊「憲哥我愛你」
## 291                      北市工務局技工好大膽 竟收賄喝花酒驗收放水
## 292                             章子怡加入炫娃族 連發醒醒萌Q變身照
## 293          【民報】一生難忘媽媽的話!86獨居老翁臨終囑捐財產三金條
## 294                            「下降頭能挽回婚姻」 女控遭騙63萬元
## 295                         假晶華董事詐騙7億 只還100萬的下場是...
## 296                        本土劇女神整形前照出土?!黑皮塌鼻引戰火
## 297                        四面佛前跳艷舞 廟方「應是信徒花錢請的」
## 298                              落單女沒先上鎖車門 遭惡男劫財劫色
## 299                      【影片】醫院外揮刀咆哮 警方衝上前一棒打掉
## 300                          劉真女兒雙滿月 辛龍送糕「最幸福的事」
## 301                              等著見小豬?!周揚青出沒台北信義區
## 302                              360度搶拍法拉利 警:開違規罰300元
## 303                                 學蜘蛛人垂降進屋 糗懸3樓高半空
## 304                    警政署前署長顏世錫腦出血 昏迷送萬芳醫院治療
## 305                【更新】罵記者「神經病」被訴 連惠心賠50萬換和解
## 306                          歪國老闆拉鐵門性侵女客 因這事判免驅離
## 307                          美魔安糾紛被控妨害名譽 前主播妻不起訴
##                      dt category clicked
## 1   2016-04-15 14:32:00     社會    1754
## 2   2016-04-15 14:22:00     社會    1076
## 3   2016-04-15 14:17:00     娛樂    1749
## 4   2016-04-15 14:12:00     社會   11886
## 5   2016-04-15 14:00:00     娛樂   11696
## 6   2016-04-15 13:52:00     社會    4582
## 7   2016-04-15 13:49:00     娛樂    3329
## 8   2016-04-15 13:47:00     社會    1154
## 9   2016-04-15 13:45:00     社會    4322
## 10  2016-04-15 13:40:00     娛樂    4307
## 11  2016-04-15 13:30:00     娛樂    4651
## 12  2016-04-15 13:23:00     娛樂    5141
## 13  2016-04-15 13:08:00     娛樂   11588
## 14  2016-04-15 13:07:00     社會    1989
## 15  2016-04-15 13:06:00     社會    1147
## 16  2016-04-15 13:02:00     社會   15328
## 17  2016-04-15 13:00:00     娛樂    5209
## 18  2016-04-15 12:52:00     社會    4432
## 19  2016-04-15 12:41:00     社會    1011
## 20  2016-04-15 12:38:00     社會    8186
## 21  2016-04-15 12:34:00     社會    3747
## 22  2016-04-15 12:33:00     社會   14450
## 23  2016-04-15 12:29:00     娛樂   27010
## 24  2016-04-15 12:26:00     社會    3263
## 25  2016-04-15 12:09:00     社會    4273
## 26  2016-04-15 12:08:00     社會    8332
## 27  2016-04-15 12:05:00     社會    2957
## 28  2016-04-15 11:59:00     社會   17249
## 29  2016-04-15 11:53:00     社會    2518
## 30  2016-04-15 11:52:00     娛樂   10455
## 31  2016-04-15 11:47:00     社會   22995
## 32  2016-04-15 11:47:00     社會    4325
## 33  2016-04-15 11:40:00     娛樂   88386
## 34  2016-04-15 11:39:00     社會    3129
## 35  2016-04-15 11:35:00     社會    3956
## 36  2016-04-15 11:27:00     娛樂    9930
## 37  2016-04-15 11:25:00     社會    2491
## 38  2016-04-15 11:00:00     娛樂    7536
## 39  2016-04-15 10:48:00     社會   53097
## 40  2016-04-15 10:40:00     社會    1316
## 41  2016-04-15 10:39:00     娛樂    1631
## 42  2016-04-15 10:30:00     娛樂   10478
## 43  2016-04-15 10:30:00     娛樂    5766
## 44  2016-04-15 10:17:00     社會   16970
## 45  2016-04-15 10:15:00     社會   17912
## 46  2016-04-15 10:04:00     娛樂   13351
## 47  2016-04-15 09:57:00     娛樂    8761
## 48  2016-04-15 09:49:00     娛樂    1681
## 49  2016-04-15 09:42:00     社會  172024
## 50  2016-04-15 09:40:00     娛樂    4143
## 51  2016-04-15 09:26:00     社會   57953
## 52  2016-04-15 08:05:00     社會   42724
## 53  2016-04-15 08:04:00     社會   55616
## 54  2016-04-15 07:35:00     社會   11274
## 55  2016-04-15 07:35:00     社會   11274
## 56  2016-04-15 07:08:00     娛樂   12420
## 57  2016-04-15 06:56:00     娛樂   80200
## 58  2016-04-15 06:49:00     社會    5954
## 59  2016-04-15 01:10:00     娛樂   19030
## 60  2016-04-15 00:51:00     娛樂   19625
## 61  2016-04-15 00:38:00     娛樂   18220
## 62  2016-04-15 00:10:00     娛樂    4697
## 63  2016-04-15 00:05:00     社會    5431
## 64  2016-04-15 00:03:00     社會    9014
## 65  2016-04-15 00:01:00     社會   55128
## 66  2016-04-15 00:00:00     娛樂    7561
## 67  2016-04-14 23:18:00     娛樂    5241
## 68  2016-04-14 23:00:00     娛樂   12046
## 69  2016-04-14 22:42:00     社會   27477
## 70  2016-04-14 22:37:00     娛樂  126774
## 71  2016-04-14 22:32:00     娛樂    5085
## 72  2016-04-14 22:30:00     娛樂    4999
## 73  2016-04-14 22:20:00     娛樂   13761
## 74  2016-04-14 22:12:00     社會   14023
## 75  2016-04-14 22:02:00     社會   22370
## 76  2016-04-14 21:57:00     社會    7430
## 77  2016-04-14 21:47:00     社會    3856
## 78  2016-04-14 21:38:00     社會   35349
## 79  2016-04-14 21:18:00     社會   31428
## 80  2016-04-14 21:09:00     社會   59690
## 81  2016-04-14 21:05:00     娛樂    3450
## 82  2016-04-14 20:45:00     社會  150666
## 83  2016-04-14 20:42:00     社會   23574
## 84  2016-04-14 20:40:00     娛樂    8574
## 85  2016-04-14 20:39:00     社會   10772
## 86  2016-04-14 20:39:00     社會    4430
## 87  2016-04-14 20:30:00     娛樂   27440
## 88  2016-04-14 20:29:00     社會    2323
## 89  2016-04-14 20:24:00     社會    6057
## 90  2016-04-14 20:20:00     社會   11706
## 91  2016-04-14 20:18:00     娛樂   20450
## 92  2016-04-14 20:04:00     娛樂   22129
## 93  2016-04-14 20:00:00     娛樂   14398
## 94  2016-04-14 19:56:00     娛樂   24017
## 95  2016-04-14 19:50:00     社會    4743
## 96  2016-04-14 19:49:00     社會    5441
## 97  2016-04-14 19:46:00     社會    2567
## 98  2016-04-14 19:38:00     社會    8502
## 99  2016-04-14 19:34:00     社會   64238
## 100 2016-04-14 19:33:00     社會   77064
## 101 2016-04-14 19:25:00     社會   41538
## 102 2016-04-14 19:15:00     社會  241842
## 103 2016-04-14 19:08:00     社會   93376
## 104 2016-04-14 19:05:00     社會   12356
## 105 2016-04-14 18:56:00     娛樂   22946
## 106 2016-04-14 18:54:00     社會  112086
## 107 2016-04-14 18:45:00     娛樂    3382
## 108 2016-04-14 18:39:00     社會    7486
## 109 2016-04-14 18:34:00     社會    7568
## 110 2016-04-14 18:28:00     社會    9909
## 111 2016-04-14 18:28:00     娛樂  131942
## 112 2016-04-14 18:23:00     娛樂    8041
## 113 2016-04-14 18:22:00     娛樂    9258
## 114 2016-04-14 18:16:00     娛樂   76064
## 115 2016-04-14 18:11:00     娛樂   20399
## 116 2016-04-14 17:54:00     社會  138085
## 117 2016-04-14 17:52:00     社會   39768
## 118 2016-04-14 17:49:00     娛樂    8810
## 119 2016-04-14 17:47:00     社會    4005
## 120 2016-04-14 17:44:00     社會    5786
## 121 2016-04-14 17:41:00     社會   30343
## 122 2016-04-14 17:39:00     社會   16035
## 123 2016-04-14 17:38:00     娛樂   26036
## 124 2016-04-14 17:34:00     社會  100973
## 125 2016-04-14 17:33:00     社會   13077
## 126 2016-04-14 17:29:00     社會   18487
## 127 2016-04-14 17:13:00     社會   14017
## 128 2016-04-14 17:06:00     社會   59580
## 129 2016-04-14 17:00:00     娛樂   31727
## 130 2016-04-14 16:57:00     社會     918
## 131 2016-04-14 16:55:00     社會  103829
## 132 2016-04-14 16:52:00     社會   81948
## 133 2016-04-14 16:46:00     社會  140109
## 134 2016-04-14 16:45:00     娛樂   16175
## 135 2016-04-14 16:40:00     社會   37106
## 136 2016-04-14 16:39:00     社會  131262
## 137 2016-04-14 16:31:00     社會    4145
## 138 2016-04-14 16:30:00     娛樂   16676
## 139 2016-04-14 16:22:00     社會    8396
## 140 2016-04-14 16:11:00     社會    8095
## 141 2016-04-14 16:10:00     社會    2772
## 142 2016-04-14 16:00:00     娛樂   15089
## 143 2016-04-14 15:59:00     社會    5480
## 144 2016-04-14 15:57:00     社會    8736
## 145 2016-04-14 15:52:00     社會   30836
## 146 2016-04-14 15:47:00     社會    2953
## 147 2016-04-14 15:40:00     娛樂   11339
## 148 2016-04-14 15:39:00     社會    5089
## 149 2016-04-14 15:35:00     娛樂   16073
## 150 2016-04-14 15:32:00     社會    3982
## 151 2016-04-14 15:22:00     娛樂  142444
## 152 2016-04-14 15:20:00     社會    3554
## 153 2016-04-14 15:19:00     社會    6390
## 154 2016-04-14 15:12:00     社會   53120
## 155 2016-04-14 15:12:00     娛樂   78743
## 156 2016-04-14 15:11:00     社會    2261
## 157 2016-04-14 15:00:00     娛樂   73177
## 158 2016-04-14 14:50:00     社會    7029
## 159 2016-04-14 14:45:00     社會   85337
## 160 2016-04-14 14:41:00     社會    3208
## 161 2016-04-14 14:35:00     娛樂    6653
## 162 2016-04-14 14:30:00     娛樂   15253
## 163 2016-04-14 14:18:00     娛樂   64117
## 164 2016-04-14 14:18:00     社會    2409
## 165 2016-04-14 14:10:00     社會  145415
## 166 2016-04-14 14:10:00     社會    3001
## 167 2016-04-14 14:08:00     社會   12791
## 168 2016-04-14 14:01:00     社會    4655
## 169 2016-04-14 14:00:00     娛樂   62067
## 170 2016-04-14 13:59:00     社會    1305
## 171 2016-04-14 13:55:00     社會    3590
## 172 2016-04-14 13:54:00     社會    1584
## 173 2016-04-14 13:40:00     社會    4218
## 174 2016-04-14 13:19:00     娛樂   10520
## 175 2016-04-14 13:06:00     社會   12096
## 176 2016-04-14 13:05:00     娛樂   67683
## 177 2016-04-14 13:05:00     社會    8084
## 178 2016-04-14 13:04:00     社會    8394
## 179 2016-04-14 12:49:00     社會    9445
## 180 2016-04-14 12:46:00     社會   26555
## 181 2016-04-14 12:35:00     社會   14572
## 182 2016-04-14 12:30:00     娛樂   16054
## 183 2016-04-14 12:29:00     社會    3501
## 184 2016-04-14 12:26:00     社會    9062
## 185 2016-04-14 12:17:00     社會   20388
## 186 2016-04-14 12:17:00     社會    3043
## 187 2016-04-14 12:16:00     社會    1602
## 188 2016-04-14 12:09:00     社會    1957
## 189 2016-04-14 12:07:00     社會   13473
## 190 2016-04-14 12:05:00     娛樂   22056
## 191 2016-04-14 12:05:00     社會    8341
## 192 2016-04-14 12:03:00     社會   11409
## 193 2016-04-14 11:54:00     社會    1883
## 194 2016-04-14 11:50:00     娛樂   30967
## 195 2016-04-14 11:40:00     社會   39034
## 196 2016-04-14 11:40:00     娛樂    7971
## 197 2016-04-14 11:40:00     社會    6051
## 198 2016-04-14 11:24:00     社會    6432
## 199 2016-04-14 11:20:00     娛樂   18160
## 200 2016-04-14 11:05:00     社會   43785
## 201 2016-04-14 10:48:00     社會    4606
## 202 2016-04-14 10:32:00     娛樂   27616
## 203 2016-04-14 10:24:00     娛樂    5537
## 204 2016-04-14 10:11:00     社會   40940
## 205 2016-04-14 10:10:00     娛樂    5886
## 206 2016-04-14 10:09:00     社會  106118
## 207 2016-04-14 09:46:00     娛樂   11899
## 208 2016-04-14 09:32:00     社會  228203
## 209 2016-04-14 09:26:00     娛樂   23735
## 210 2016-04-14 09:03:00     娛樂    9443
## 211 2016-04-14 08:29:00     娛樂   21199
## 212 2016-04-14 08:23:00     娛樂  239697
## 213 2016-04-14 07:48:00     社會  100425
## 214 2016-04-14 07:44:00     社會    4291
## 215 2016-04-14 07:36:00     社會   23014
## 216 2016-04-14 07:34:00     社會    7122
## 217 2016-04-14 07:21:00     娛樂   37152
## 218 2016-04-14 07:20:00     社會   10684
## 219 2016-04-14 07:18:00     社會   44688
## 220 2016-04-14 07:12:00     社會   75710
## 221 2016-04-14 07:06:00     社會   71849
## 222 2016-04-14 06:57:00     社會   13588
## 223 2016-04-14 06:45:00     社會  122619
## 224 2016-04-14 06:30:00     社會  171408
## 225 2016-04-14 06:27:00     社會    6611
## 226 2016-04-14 03:22:00     社會    4799
## 227 2016-04-14 03:11:00     社會    7515
## 228 2016-04-14 02:36:00     娛樂   25732
## 229 2016-04-14 02:15:00     娛樂   27671
## 230 2016-04-14 00:38:00     娛樂   35597
## 231 2016-04-14 00:35:00     娛樂    9450
## 232 2016-04-14 00:24:00     娛樂   10499
## 233 2016-04-14 00:18:00     娛樂    2240
## 234 2016-04-14 00:05:00     娛樂  265355
## 235 2016-04-14 00:02:00     娛樂   38814
## 236 2016-04-14 00:01:00     社會   53421
## 237 2016-04-14 00:00:00     社會    9918
## 238 2016-04-13 23:35:00     社會    3259
## 239 2016-04-13 23:30:00     娛樂   31534
## 240 2016-04-13 23:24:00     社會    5590
## 241 2016-04-13 23:13:00     社會   37863
## 242 2016-04-13 23:00:00     娛樂   12714
## 243 2016-04-13 22:50:00     社會   15809
## 244 2016-04-13 22:32:00     娛樂   12405
## 245 2016-04-13 22:28:00     娛樂   29726
## 246 2016-04-13 22:17:00     社會   17992
## 247 2016-04-13 22:15:00     娛樂   17492
## 248 2016-04-13 22:00:00     娛樂   15701
## 249 2016-04-13 21:55:00     娛樂   49616
## 250 2016-04-13 21:49:00     社會   13049
## 251 2016-04-13 21:42:00     社會   46020
## 252 2016-04-13 21:38:00     社會    1381
## 253 2016-04-13 21:30:00     娛樂   14995
## 254 2016-04-13 21:23:00     社會   22872
## 255 2016-04-13 21:15:00     娛樂   54272
## 256 2016-04-13 21:10:00     社會    6047
## 257 2016-04-13 21:10:00     社會    5886
## 258 2016-04-13 21:05:00     娛樂   71338
## 259 2016-04-13 21:00:00     娛樂    6599
## 260 2016-04-13 20:55:00     娛樂   34500
## 261 2016-04-13 20:53:00     社會    3870
## 262 2016-04-13 20:51:00     社會  104393
## 263 2016-04-13 20:28:00     社會   26151
## 264 2016-04-13 20:27:00     娛樂   12636
## 265 2016-04-13 20:26:00     社會    7751
## 266 2016-04-13 20:22:00     娛樂    9156
## 267 2016-04-13 20:12:00     社會    3002
## 268 2016-04-13 20:08:00     社會  217096
## 269 2016-04-13 20:08:00     娛樂    6746
## 270 2016-04-13 20:06:00     社會    1373
## 271 2016-04-13 20:06:00     社會    3766
## 272 2016-04-13 20:05:00     社會   82726
## 273 2016-04-13 20:00:00     娛樂   94302
## 274 2016-04-13 19:54:00     社會    4173
## 275 2016-04-13 19:32:00     娛樂    9368
## 276 2016-04-13 19:18:00     社會   10464
## 277 2016-04-13 19:18:00     社會   39911
## 278 2016-04-13 19:03:00     社會  214796
## 279 2016-04-13 19:03:00     娛樂   70169
## 280 2016-04-13 18:56:00     社會   59229
## 281 2016-04-13 18:47:00     社會   18045
## 282 2016-04-13 18:46:00     娛樂   40764
## 283 2016-04-13 18:40:00     娛樂   19267
## 284 2016-04-13 18:38:00     娛樂    9860
## 285 2016-04-13 18:10:00     娛樂   17874
## 286 2016-04-13 18:10:00     社會   19741
## 287 2016-04-13 18:10:00     社會   47145
## 288 2016-04-13 18:10:00     社會   47145
## 289 2016-04-13 18:03:00     社會   31267
## 290 2016-04-13 17:56:00     娛樂   42048
## 291 2016-04-13 17:32:00     社會    9292
## 292 2016-04-13 17:30:00     娛樂   18752
## 293 2016-04-13 17:30:00     社會   12091
## 294 2016-04-13 17:12:00     社會    4600
## 295 2016-04-13 17:11:00     社會    9284
## 296 2016-04-13 17:08:00     娛樂  299235
## 297 2016-04-13 17:05:00     社會   17937
## 298 2016-04-13 17:03:00     社會   18176
## 299 2016-04-13 16:55:00     社會    5940
## 300 2016-04-13 16:52:00     娛樂   32363
## 301 2016-04-13 16:40:00     娛樂   23314
## 302 2016-04-13 16:35:00     社會    7124
## 303 2016-04-13 16:35:00     社會    1562
## 304 2016-04-13 16:35:00     社會   15959
## 305 2016-04-13 16:32:00     社會    6084
## 306 2016-04-13 16:23:00     社會    9305
## 307 2016-04-13 16:20:00     社會    8163
#and 
head(filter(applenews, category == "娛樂" & clicked > 10000))
##                                          title                  dt
## 1   【唱新聞】詐騙嗎?R.O.C.有CHINA但不是CHINA 2016-04-15 14:00:00
## 2             徐佳瑩開唱前驚傳失聲 急診照曝光 2016-04-15 13:08:00
## 3 【更新】《太陽》完美結局 沉船灣之吻收視最熱 2016-04-15 12:29:00
## 4 宋慧喬愛國拒代言 台大教授批韓軍「應被唾棄」 2016-04-15 11:52:00
## 5  【請回答】六月李易對質實況 出軌X次說清楚! 2016-04-15 11:40:00
## 6         劉愷威被問楊冪超囧 擠不出上次何時見 2016-04-15 10:30:00
##   category clicked
## 1     娛樂   11696
## 2     娛樂   11588
## 3     娛樂   27010
## 4     娛樂   10455
## 5     娛樂   88386
## 6     娛樂   10478
head(filter(applenews, category == "娛樂", clicked > 10000))
##                                          title                  dt
## 1   【唱新聞】詐騙嗎?R.O.C.有CHINA但不是CHINA 2016-04-15 14:00:00
## 2             徐佳瑩開唱前驚傳失聲 急診照曝光 2016-04-15 13:08:00
## 3 【更新】《太陽》完美結局 沉船灣之吻收視最熱 2016-04-15 12:29:00
## 4 宋慧喬愛國拒代言 台大教授批韓軍「應被唾棄」 2016-04-15 11:52:00
## 5  【請回答】六月李易對質實況 出軌X次說清楚! 2016-04-15 11:40:00
## 6         劉愷威被問楊冪超囧 擠不出上次何時見 2016-04-15 10:30:00
##   category clicked
## 1     娛樂   11696
## 2     娛樂   11588
## 3     娛樂   27010
## 4     娛樂   10455
## 5     娛樂   88386
## 6     娛樂   10478
#or
head(filter(applenews, category == "娛樂" | clicked > 10000))
##                                                   title
## 1                       又要下雨了 中南部6縣市大雨特報
## 2                      澎恰恰收女弟子 拱當台灣第一名伶
## 3             【驚險有片】BMW撞翻撞公車 後方機車神穿越
## 4            【唱新聞】詐騙嗎?R.O.C.有CHINA但不是CHINA
## 5 蔡英文、林全人事公佈記者會 14:30【蘋果Live】同步直播
## 6                    白曉燕命案19年了 白冰冰「不能忘」
##                    dt category clicked
## 1 2016-04-15 14:19:00     生活   12347
## 2 2016-04-15 14:17:00     娛樂    1749
## 3 2016-04-15 14:12:00     社會   11886
## 4 2016-04-15 14:00:00     娛樂   11696
## 5 2016-04-15 13:50:00     政治   12425
## 6 2016-04-15 13:49:00     娛樂    3329
#dplyr 的欄位選取
#選擇列舉出的欄位
head(select(applenews,category,clicked))
##   category clicked
## 1     社會    1754
## 2     國際       0
## 3     地產       0
## 4     國際       0
## 5     時尚     311
## 6     財經      24
#選擇從category~clicked欄位
select(applenews,title:category) %>% head()
##                                          title                  dt
## 1 【更新】搶2.2萬彩券刮中1.4萬 沒發財還得入獄 2016-04-15 14:32:00
## 2             拿到澳洲護照後 他放火燒中國護照 2016-04-15 14:32:00
## 3       【特企】房市大追擊- 租屋這些事情要小心 2016-04-15 14:31:00
## 4          【央廣RTI】美菲軍演  美防長南海登艦 2016-04-15 14:30:00
## 5         全球最閃牽手夫妻 絕美禮服出自台灣… 2016-04-15 14:28:00
## 6         公司遭搜索 浩鼎籲檢調勿公開商業機密 2016-04-15 14:28:00
##   category
## 1     社會
## 2     國際
## 3     地產
## 4     國際
## 5     時尚
## 6     財經
#選擇欄位名稱含有click字串的欄位
head(select(applenews,contains('click')))
##   clicked
## 1    1754
## 2       0
## 3       0
## 4       0
## 5     311
## 6      24
##iris - selected helpers
head(select(iris,starts_with("Sepal")))
##   Sepal.Length Sepal.Width
## 1          5.1         3.5
## 2          4.9         3.0
## 3          4.7         3.2
## 4          4.6         3.1
## 5          5.0         3.6
## 6          5.4         3.9
head(select(iris,ends_with("Length")))
##   Sepal.Length Petal.Length
## 1          5.1          1.4
## 2          4.9          1.4
## 3          4.7          1.3
## 4          4.6          1.5
## 5          5.0          1.4
## 6          5.4          1.7
#group_by & summarise
applenews %>%
  group_by(category) %>%
  summarise(clicked_mean = mean(clicked, na.rm=TRUE)) %>%
  arrange(desc(clicked_mean))
## # A tibble: 14 x 2
##    category clicked_mean
##    <chr>           <dbl>
##  1 正妹           84119.
##  2 娛樂           31602.
##  3 社會           29494.
##  4 體育           16822.
##  5 搜奇           12151.
##  6 政治           11902.
##  7 生活           11469.
##  8 國際            8914.
##  9 地產            6900.
## 10 時尚            6855.
## 11 論壇            5683.
## 12 財經            5109.
## 13 動物            4742.
## 14 3C              3954.
#多個欄位計算
applenews %>%
  group_by(category) %>%
  summarise_at(.funs=funs(min,max,mean,median,sd), .vars=vars(clicked))
## Warning: funs() is soft deprecated as of dplyr 0.8.0
## Please use a list of either functions or lambdas: 
## 
##   # Simple named list: 
##   list(mean = mean, median = median)
## 
##   # Auto named with `tibble::lst()`: 
##   tibble::lst(mean, median)
## 
##   # Using lambdas
##   list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
## This warning is displayed once per session.
## # A tibble: 14 x 6
##    category   min    max   mean median      sd
##    <chr>    <int>  <int>  <dbl>  <dbl>   <dbl>
##  1 3C         267  20509  3954.  2879    4480.
##  2 財經        24  54886  5109.  2479    8413.
##  3 地產         0  80691  6900.  3368   14584.
##  4 動物      1211  11753  4742.  3914.   2568.
##  5 國際         0 150825  8914.  3422   17848.
##  6 論壇       275  68208  5683.  3389    9601.
##  7 社會       918 241842 29494.  9677   45373.
##  8 生活        20 132880 11469.  3806.  19974.
##  9 時尚       311  67086  6855.  4298.  10660.
## 10 搜奇       199  83036 12151.  3263   18981.
## 11 體育       523 162907 16822. 10056   25452.
## 12 娛樂      1631 299235 31602. 16054   47989.
## 13 正妹      7999 344733 84119. 47390. 109275.
## 14 政治       221  83059 11902.  6150   14984.

alter mysql 8.0 password encryption

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

CREATE DATABASE test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
console login
mysql -u USERNAME -p PASSWORD -h HOSTNAMEORIP DATABASENAME

dplyr連接資料庫範例(mysql)

  • 可改用 RMariaDB package
#install.packages('dplyr')
#install.packages('RMariaDB')
#install.packages('dbplyr')
library('dplyr')
library('dbplyr')
## Warning: package 'dbplyr' was built under R version 3.5.2
## 
## Attaching package: 'dbplyr'
## The following objects are masked from 'package:dplyr':
## 
##     ident, sql
library('RMariaDB')

data("iris")
##iris example
conn = dbConnect(MariaDB(),dbname='test',host='127.0.0.1',port=3306,user='root',password='pythonetl')
db_drop_table(conn,'iris')
## [1] 0
copy_to(conn,iris,temporary = F)

tbl(conn,"iris") %>%
  select(starts_with('Sepal'),'Species') %>%
  group_by(Species) %>%
  summarise_at(.funs=funs(mean(.,na.rm=T),sd(.,na.rm=T)),.vars=vars(starts_with('Sepal'))) %>%
  collect()
## # A tibble: 3 x 5
##   Species  Sepal.Length_me… Sepal.Width_mean Sepal.Length_sd Sepal.Width_sd
##   <chr>               <dbl>            <dbl>           <dbl>          <dbl>
## 1 setosa               5.01             3.43           0.352          0.379
## 2 versico…             5.94             2.77           0.516          0.314
## 3 virgini…             6.59             2.97           0.636          0.322
dbGetQuery(conn,'select * from iris') %>% filter(Species == 'setosa')
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  setosa
## 2           4.9         3.0          1.4         0.2  setosa
## 3           4.7         3.2          1.3         0.2  setosa
## 4           4.6         3.1          1.5         0.2  setosa
## 5           5.0         3.6          1.4         0.2  setosa
## 6           5.4         3.9          1.7         0.4  setosa
## 7           4.6         3.4          1.4         0.3  setosa
## 8           5.0         3.4          1.5         0.2  setosa
## 9           4.4         2.9          1.4         0.2  setosa
## 10          4.9         3.1          1.5         0.1  setosa
## 11          5.4         3.7          1.5         0.2  setosa
## 12          4.8         3.4          1.6         0.2  setosa
## 13          4.8         3.0          1.4         0.1  setosa
## 14          4.3         3.0          1.1         0.1  setosa
## 15          5.8         4.0          1.2         0.2  setosa
## 16          5.7         4.4          1.5         0.4  setosa
## 17          5.4         3.9          1.3         0.4  setosa
## 18          5.1         3.5          1.4         0.3  setosa
## 19          5.7         3.8          1.7         0.3  setosa
## 20          5.1         3.8          1.5         0.3  setosa
## 21          5.4         3.4          1.7         0.2  setosa
## 22          5.1         3.7          1.5         0.4  setosa
## 23          4.6         3.6          1.0         0.2  setosa
## 24          5.1         3.3          1.7         0.5  setosa
## 25          4.8         3.4          1.9         0.2  setosa
## 26          5.0         3.0          1.6         0.2  setosa
## 27          5.0         3.4          1.6         0.4  setosa
## 28          5.2         3.5          1.5         0.2  setosa
## 29          5.2         3.4          1.4         0.2  setosa
## 30          4.7         3.2          1.6         0.2  setosa
## 31          4.8         3.1          1.6         0.2  setosa
## 32          5.4         3.4          1.5         0.4  setosa
## 33          5.2         4.1          1.5         0.1  setosa
## 34          5.5         4.2          1.4         0.2  setosa
## 35          4.9         3.1          1.5         0.2  setosa
## 36          5.0         3.2          1.2         0.2  setosa
## 37          5.5         3.5          1.3         0.2  setosa
## 38          4.9         3.6          1.4         0.1  setosa
## 39          4.4         3.0          1.3         0.2  setosa
## 40          5.1         3.4          1.5         0.2  setosa
## 41          5.0         3.5          1.3         0.3  setosa
## 42          4.5         2.3          1.3         0.3  setosa
## 43          4.4         3.2          1.3         0.2  setosa
## 44          5.0         3.5          1.6         0.6  setosa
## 45          5.1         3.8          1.9         0.4  setosa
## 46          4.8         3.0          1.4         0.3  setosa
## 47          5.1         3.8          1.6         0.2  setosa
## 48          4.6         3.2          1.4         0.2  setosa
## 49          5.3         3.7          1.5         0.2  setosa
## 50          5.0         3.3          1.4         0.2  setosa
dbGetQuery(conn,'select `Sepal.Length` from iris')
##     Sepal.Length
## 1            5.1
## 2            4.9
## 3            4.7
## 4            4.6
## 5            5.0
## 6            5.4
## 7            4.6
## 8            5.0
## 9            4.4
## 10           4.9
## 11           5.4
## 12           4.8
## 13           4.8
## 14           4.3
## 15           5.8
## 16           5.7
## 17           5.4
## 18           5.1
## 19           5.7
## 20           5.1
## 21           5.4
## 22           5.1
## 23           4.6
## 24           5.1
## 25           4.8
## 26           5.0
## 27           5.0
## 28           5.2
## 29           5.2
## 30           4.7
## 31           4.8
## 32           5.4
## 33           5.2
## 34           5.5
## 35           4.9
## 36           5.0
## 37           5.5
## 38           4.9
## 39           4.4
## 40           5.1
## 41           5.0
## 42           4.5
## 43           4.4
## 44           5.0
## 45           5.1
## 46           4.8
## 47           5.1
## 48           4.6
## 49           5.3
## 50           5.0
## 51           7.0
## 52           6.4
## 53           6.9
## 54           5.5
## 55           6.5
## 56           5.7
## 57           6.3
## 58           4.9
## 59           6.6
## 60           5.2
## 61           5.0
## 62           5.9
## 63           6.0
## 64           6.1
## 65           5.6
## 66           6.7
## 67           5.6
## 68           5.8
## 69           6.2
## 70           5.6
## 71           5.9
## 72           6.1
## 73           6.3
## 74           6.1
## 75           6.4
## 76           6.6
## 77           6.8
## 78           6.7
## 79           6.0
## 80           5.7
## 81           5.5
## 82           5.5
## 83           5.8
## 84           6.0
## 85           5.4
## 86           6.0
## 87           6.7
## 88           6.3
## 89           5.6
## 90           5.5
## 91           5.5
## 92           6.1
## 93           5.8
## 94           5.0
## 95           5.6
## 96           5.7
## 97           5.7
## 98           6.2
## 99           5.1
## 100          5.7
## 101          6.3
## 102          5.8
## 103          7.1
## 104          6.3
## 105          6.5
## 106          7.6
## 107          4.9
## 108          7.3
## 109          6.7
## 110          7.2
## 111          6.5
## 112          6.4
## 113          6.8
## 114          5.7
## 115          5.8
## 116          6.4
## 117          6.5
## 118          7.7
## 119          7.7
## 120          6.0
## 121          6.9
## 122          5.6
## 123          7.7
## 124          6.3
## 125          6.7
## 126          7.2
## 127          6.2
## 128          6.1
## 129          6.4
## 130          7.2
## 131          7.4
## 132          7.9
## 133          6.4
## 134          6.3
## 135          6.1
## 136          7.7
## 137          6.3
## 138          6.4
## 139          6.0
## 140          6.9
## 141          6.7
## 142          6.9
## 143          5.8
## 144          6.8
## 145          6.7
## 146          6.7
## 147          6.3
## 148          6.5
## 149          6.2
## 150          5.9
dbListTables(conn)
## [1] "applenews" "iris"

Classification

Decision Tree - using churn data in C50 package

#install.packages('modeldata')
library(modeldata)
## Warning: package 'modeldata' was built under R version 3.5.2
data(mlc_churn)

str(mlc_churn)
## Classes 'tbl_df', 'tbl' and 'data.frame':    5000 obs. of  20 variables:
##  $ state                        : Factor w/ 51 levels "AK","AL","AR",..: 17 36 32 36 37 2 20 25 19 50 ...
##  $ account_length               : int  128 107 137 84 75 118 121 147 117 141 ...
##  $ area_code                    : Factor w/ 3 levels "area_code_408",..: 2 2 2 1 2 3 3 2 1 2 ...
##  $ international_plan           : Factor w/ 2 levels "no","yes": 1 1 1 2 2 2 1 2 1 2 ...
##  $ voice_mail_plan              : Factor w/ 2 levels "no","yes": 2 2 1 1 1 1 2 1 1 2 ...
##  $ number_vmail_messages        : int  25 26 0 0 0 0 24 0 0 37 ...
##  $ total_day_minutes            : num  265 162 243 299 167 ...
##  $ total_day_calls              : int  110 123 114 71 113 98 88 79 97 84 ...
##  $ total_day_charge             : num  45.1 27.5 41.4 50.9 28.3 ...
##  $ total_eve_minutes            : num  197.4 195.5 121.2 61.9 148.3 ...
##  $ total_eve_calls              : int  99 103 110 88 122 101 108 94 80 111 ...
##  $ total_eve_charge             : num  16.78 16.62 10.3 5.26 12.61 ...
##  $ total_night_minutes          : num  245 254 163 197 187 ...
##  $ total_night_calls            : int  91 103 104 89 121 118 118 96 90 97 ...
##  $ total_night_charge           : num  11.01 11.45 7.32 8.86 8.41 ...
##  $ total_intl_minutes           : num  10 13.7 12.2 6.6 10.1 6.3 7.5 7.1 8.7 11.2 ...
##  $ total_intl_calls             : int  3 3 5 7 3 6 7 6 4 5 ...
##  $ total_intl_charge            : num  2.7 3.7 3.29 1.78 2.73 1.7 2.03 1.92 2.35 3.02 ...
##  $ number_customer_service_calls: int  1 1 0 2 3 0 3 0 1 0 ...
##  $ churn                        : Factor w/ 2 levels "yes","no": 2 2 2 2 2 2 2 2 2 2 ...
names(mlc_churn) %in% c("state", "area_code", "account_length")
##  [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [12] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
!names(mlc_churn) %in% c("state", "area_code", "account_length")
##  [1] FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [12]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
#選擇建模變數
variable.list = !names(mlc_churn) %in% c('state','area_code','account_length')
mlc_churn=mlc_churn[,variable.list]

str(mlc_churn)
## Classes 'tbl_df', 'tbl' and 'data.frame':    5000 obs. of  17 variables:
##  $ international_plan           : Factor w/ 2 levels "no","yes": 1 1 1 2 2 2 1 2 1 2 ...
##  $ voice_mail_plan              : Factor w/ 2 levels "no","yes": 2 2 1 1 1 1 2 1 1 2 ...
##  $ number_vmail_messages        : int  25 26 0 0 0 0 24 0 0 37 ...
##  $ total_day_minutes            : num  265 162 243 299 167 ...
##  $ total_day_calls              : int  110 123 114 71 113 98 88 79 97 84 ...
##  $ total_day_charge             : num  45.1 27.5 41.4 50.9 28.3 ...
##  $ total_eve_minutes            : num  197.4 195.5 121.2 61.9 148.3 ...
##  $ total_eve_calls              : int  99 103 110 88 122 101 108 94 80 111 ...
##  $ total_eve_charge             : num  16.78 16.62 10.3 5.26 12.61 ...
##  $ total_night_minutes          : num  245 254 163 197 187 ...
##  $ total_night_calls            : int  91 103 104 89 121 118 118 96 90 97 ...
##  $ total_night_charge           : num  11.01 11.45 7.32 8.86 8.41 ...
##  $ total_intl_minutes           : num  10 13.7 12.2 6.6 10.1 6.3 7.5 7.1 8.7 11.2 ...
##  $ total_intl_calls             : int  3 3 5 7 3 6 7 6 4 5 ...
##  $ total_intl_charge            : num  2.7 3.7 3.29 1.78 2.73 1.7 2.03 1.92 2.35 3.02 ...
##  $ number_customer_service_calls: int  1 1 0 2 3 0 3 0 1 0 ...
##  $ churn                        : Factor w/ 2 levels "yes","no": 2 2 2 2 2 2 2 2 2 2 ...
#sample
?sample
## Help on topic 'sample' was found in the following packages:
## 
##   Package               Library
##   dplyr                 /Library/Frameworks/R.framework/Versions/3.5/Resources/library
##   base                  /Library/Frameworks/R.framework/Resources/library
## 
## 
## Using the first match ...
sample(1:10)
##  [1]  7 10  2  5  1  6  4  9  8  3
sample(1:10, size = 5)
## [1] 6 5 7 2 1
sample(c(0,1), size= 10, replace = T)
##  [1] 1 1 0 0 0 1 0 0 1 0
sample.int(20, 12) # 兩個參數都要放整數,此例為取1:20中的12個不重複樣本
##  [1]  4 20  5 19  8 14 10  9 13  7 17  3
set.seed(222)
#把資料分成training data 和 testing data
ind<-sample(1:2, size=nrow(mlc_churn), replace=T, prob=c(0.7, 0.3))
trainset=mlc_churn[ind==1,]
testset=mlc_churn[ind==2,]

rpart

#install.packages('rpart')
library('rpart')
#使用rpart(CART)建立決策樹模型
?rpart
con = rpart.control(minsplit=20,cp=0.01)
?rpart.control
churn.rp<-rpart(churn ~., data=trainset,control = con)
#churn.rp<-rpart(churn ~ total_day_charge + international_plan, data=trainset)

churn.rp
## n= 3500 
## 
## node), split, n, loss, yval, (yprob)
##       * denotes terminal node
## 
##   1) root 3500 506 no (0.14457143 0.85542857)  
##     2) total_day_minutes>=264.45 237  90 yes (0.62025316 0.37974684)  
##       4) voice_mail_plan=no 180  40 yes (0.77777778 0.22222222)  
##         8) total_eve_minutes>=150.35 150  17 yes (0.88666667 0.11333333) *
##         9) total_eve_minutes< 150.35 30   7 no (0.23333333 0.76666667) *
##       5) voice_mail_plan=yes 57   7 no (0.12280702 0.87719298) *
##     3) total_day_minutes< 264.45 3263 359 no (0.11002145 0.88997855)  
##       6) number_customer_service_calls>=3.5 254 126 no (0.49606299 0.50393701)  
##        12) total_day_minutes< 162.7 100  14 yes (0.86000000 0.14000000) *
##        13) total_day_minutes>=162.7 154  40 no (0.25974026 0.74025974)  
##          26) total_eve_minutes< 146.8 20   5 yes (0.75000000 0.25000000) *
##          27) total_eve_minutes>=146.8 134  25 no (0.18656716 0.81343284) *
##       7) number_customer_service_calls< 3.5 3009 233 no (0.07743436 0.92256564)  
##        14) international_plan=yes 278 103 no (0.37050360 0.62949640)  
##          28) total_intl_minutes>=13.05 50   0 yes (1.00000000 0.00000000) *
##          29) total_intl_minutes< 13.05 228  53 no (0.23245614 0.76754386)  
##            58) total_intl_calls< 2.5 44   0 yes (1.00000000 0.00000000) *
##            59) total_intl_calls>=2.5 184   9 no (0.04891304 0.95108696) *
##        15) international_plan=no 2731 130 no (0.04760161 0.95239839)  
##          30) total_day_minutes>=244.65 148  41 no (0.27702703 0.72297297)  
##            60) total_eve_minutes>=243.5 33   8 yes (0.75757576 0.24242424) *
##            61) total_eve_minutes< 243.5 115  16 no (0.13913043 0.86086957) *
##          31) total_day_minutes< 244.65 2583  89 no (0.03445606 0.96554394)  
##            62) total_eve_minutes>=266.05 249  31 no (0.12449799 0.87550201)  
##             124) total_day_minutes>=220.25 38  16 yes (0.57894737 0.42105263)  
##               248) voice_mail_plan=no 28   6 yes (0.78571429 0.21428571) *
##               249) voice_mail_plan=yes 10   0 no (0.00000000 1.00000000) *
##             125) total_day_minutes< 220.25 211   9 no (0.04265403 0.95734597) *
##            63) total_eve_minutes< 266.05 2334  58 no (0.02485004 0.97514996) *
s = summary(churn.rp)
## Call:
## rpart(formula = churn ~ ., data = trainset, control = con)
##   n= 3500 
## 
##           CP nsplit rel error    xerror       xstd
## 1 0.11264822      0 1.0000000 1.0000000 0.04111655
## 2 0.08498024      1 0.8873518 0.9189723 0.03968453
## 3 0.07114625      2 0.8023715 0.8458498 0.03830434
## 4 0.04940711      4 0.6600791 0.6857708 0.03494155
## 5 0.03162055      7 0.4743083 0.4901186 0.02999968
## 6 0.01976285      8 0.4426877 0.4723320 0.02949102
## 7 0.01679842      9 0.4229249 0.4703557 0.02943377
## 8 0.01054018     11 0.3893281 0.4367589 0.02843690
## 9 0.01000000     14 0.3577075 0.4387352 0.02849682
## 
## Variable importance
##              total_day_charge             total_day_minutes 
##                            21                            21 
## number_customer_service_calls              total_intl_calls 
##                             9                             7 
##              total_eve_charge             total_eve_minutes 
##                             7                             7 
##            international_plan             total_intl_charge 
##                             6                             5 
##            total_intl_minutes         number_vmail_messages 
##                             5                             5 
##               voice_mail_plan 
##                             5 
## 
## Node number 1: 3500 observations,    complexity param=0.1126482
##   predicted class=no   expected loss=0.1445714  P(node) =1
##     class counts:   506  2994
##    probabilities: 0.145 0.855 
##   left son=2 (237 obs) right son=3 (3263 obs)
##   Primary splits:
##       total_day_minutes             < 264.45 to the right, improve=115.04350, (0 missing)
##       total_day_charge              < 44.96  to the right, improve=115.04350, (0 missing)
##       number_customer_service_calls < 3.5    to the right, improve= 78.71580, (0 missing)
##       international_plan            splits as  RL,         improve= 58.13553, (0 missing)
##       total_intl_minutes            < 13.15  to the right, improve= 10.57256, (0 missing)
##   Surrogate splits:
##       total_day_charge < 44.96  to the right, agree=1, adj=1, (0 split)
## 
## Node number 2: 237 observations,    complexity param=0.08498024
##   predicted class=yes  expected loss=0.3797468  P(node) =0.06771429
##     class counts:   147    90
##    probabilities: 0.620 0.380 
##   left son=4 (180 obs) right son=5 (57 obs)
##   Primary splits:
##       voice_mail_plan       splits as  LR,         improve=37.14265, (0 missing)
##       number_vmail_messages < 6.5    to the left,  improve=37.14265, (0 missing)
##       total_eve_minutes     < 150.35 to the right, improve=13.63137, (0 missing)
##       total_eve_charge      < 12.78  to the right, improve=13.63137, (0 missing)
##       total_day_minutes     < 285.5  to the right, improve=11.37306, (0 missing)
##   Surrogate splits:
##       number_vmail_messages < 6.5    to the left,  agree=1.000, adj=1.000, (0 split)
##       total_night_minutes   < 110.3  to the right, agree=0.764, adj=0.018, (0 split)
##       total_night_charge    < 4.965  to the right, agree=0.764, adj=0.018, (0 split)
## 
## Node number 3: 3263 observations,    complexity param=0.07114625
##   predicted class=no   expected loss=0.1100215  P(node) =0.9322857
##     class counts:   359  2904
##    probabilities: 0.110 0.890 
##   left son=6 (254 obs) right son=7 (3009 obs)
##   Primary splits:
##       number_customer_service_calls < 3.5    to the right, improve=82.096880, (0 missing)
##       international_plan            splits as  RL,         improve=51.144010, (0 missing)
##       total_day_minutes             < 244.65 to the right, improve=13.914910, (0 missing)
##       total_day_charge              < 41.59  to the right, improve=13.914910, (0 missing)
##       total_intl_minutes            < 13.15  to the right, improve= 8.656326, (0 missing)
##   Surrogate splits:
##       total_day_calls < 159    to the right, agree=0.922, adj=0.004, (0 split)
## 
## Node number 4: 180 observations,    complexity param=0.03162055
##   predicted class=yes  expected loss=0.2222222  P(node) =0.05142857
##     class counts:   140    40
##    probabilities: 0.778 0.222 
##   left son=8 (150 obs) right son=9 (30 obs)
##   Primary splits:
##       total_eve_minutes   < 150.35 to the right, improve=21.342220, (0 missing)
##       total_eve_charge    < 12.78  to the right, improve=21.342220, (0 missing)
##       total_day_minutes   < 285.5  to the right, improve= 6.400000, (0 missing)
##       total_day_charge    < 48.535 to the right, improve= 6.400000, (0 missing)
##       total_night_minutes < 198.05 to the right, improve= 5.203805, (0 missing)
##   Surrogate splits:
##       total_eve_charge < 12.78  to the right, agree=1, adj=1, (0 split)
## 
## Node number 5: 57 observations
##   predicted class=no   expected loss=0.122807  P(node) =0.01628571
##     class counts:     7    50
##    probabilities: 0.123 0.877 
## 
## Node number 6: 254 observations,    complexity param=0.07114625
##   predicted class=no   expected loss=0.496063  P(node) =0.07257143
##     class counts:   126   128
##    probabilities: 0.496 0.504 
##   left son=12 (100 obs) right son=13 (154 obs)
##   Primary splits:
##       total_day_minutes             < 162.7  to the left,  improve=43.691350, (0 missing)
##       total_day_charge              < 27.66  to the left,  improve=43.691350, (0 missing)
##       total_eve_minutes             < 141.45 to the left,  improve= 9.909319, (0 missing)
##       total_eve_charge              < 12.025 to the left,  improve= 9.909319, (0 missing)
##       number_customer_service_calls < 4.5    to the right, improve= 5.993972, (0 missing)
##   Surrogate splits:
##       total_day_charge    < 27.66  to the left,  agree=1.000, adj=1.00, (0 split)
##       total_eve_minutes   < 118.6  to the left,  agree=0.634, adj=0.07, (0 split)
##       total_eve_charge    < 10.08  to the left,  agree=0.634, adj=0.07, (0 split)
##       total_night_minutes < 84.05  to the left,  agree=0.622, adj=0.04, (0 split)
##       total_night_calls   < 79.5   to the left,  agree=0.622, adj=0.04, (0 split)
## 
## Node number 7: 3009 observations,    complexity param=0.04940711
##   predicted class=no   expected loss=0.07743436  P(node) =0.8597143
##     class counts:   233  2776
##    probabilities: 0.077 0.923 
##   left son=14 (278 obs) right son=15 (2731 obs)
##   Primary splits:
##       international_plan splits as  RL,         improve=52.61575, (0 missing)
##       total_day_minutes  < 244.65 to the right, improve=18.19842, (0 missing)
##       total_day_charge   < 41.59  to the right, improve=18.19842, (0 missing)
##       total_eve_minutes  < 249.95 to the right, improve=10.63770, (0 missing)
##       total_eve_charge   < 21.245 to the right, improve=10.63770, (0 missing)
## 
## Node number 8: 150 observations
##   predicted class=yes  expected loss=0.1133333  P(node) =0.04285714
##     class counts:   133    17
##    probabilities: 0.887 0.113 
## 
## Node number 9: 30 observations
##   predicted class=no   expected loss=0.2333333  P(node) =0.008571429
##     class counts:     7    23
##    probabilities: 0.233 0.767 
## 
## Node number 12: 100 observations
##   predicted class=yes  expected loss=0.14  P(node) =0.02857143
##     class counts:    86    14
##    probabilities: 0.860 0.140 
## 
## Node number 13: 154 observations,    complexity param=0.01976285
##   predicted class=no   expected loss=0.2597403  P(node) =0.044
##     class counts:    40   114
##    probabilities: 0.260 0.740 
##   left son=26 (20 obs) right son=27 (134 obs)
##   Primary splits:
##       total_eve_minutes < 146.8  to the left,  improve=11.049140, (0 missing)
##       total_eve_charge  < 12.48  to the left,  improve=11.049140, (0 missing)
##       total_night_calls < 118.5  to the right, improve= 5.577768, (0 missing)
##       total_day_minutes < 180.8  to the left,  improve= 3.187721, (0 missing)
##       total_day_charge  < 30.735 to the left,  improve= 3.187721, (0 missing)
##   Surrogate splits:
##       total_eve_charge < 12.48  to the left,  agree=1, adj=1, (0 split)
## 
## Node number 14: 278 observations,    complexity param=0.04940711
##   predicted class=no   expected loss=0.3705036  P(node) =0.07942857
##     class counts:   103   175
##    probabilities: 0.371 0.629 
##   left son=28 (50 obs) right son=29 (228 obs)
##   Primary splits:
##       total_intl_minutes < 13.05  to the right, improve=48.316610, (0 missing)
##       total_intl_calls   < 2.5    to the left,  improve=48.316610, (0 missing)
##       total_intl_charge  < 3.525  to the right, improve=48.316610, (0 missing)
##       total_day_minutes  < 235.9  to the right, improve= 3.542388, (0 missing)
##       total_day_charge   < 40.1   to the right, improve= 3.542388, (0 missing)
##   Surrogate splits:
##       total_intl_charge < 3.525  to the right, agree=1.000, adj=1.00, (0 split)
##       total_night_calls < 141.5  to the right, agree=0.824, adj=0.02, (0 split)
##       total_intl_calls  < 11.5   to the right, agree=0.824, adj=0.02, (0 split)
## 
## Node number 15: 2731 observations,    complexity param=0.01679842
##   predicted class=no   expected loss=0.04760161  P(node) =0.7802857
##     class counts:   130  2601
##    probabilities: 0.048 0.952 
##   left son=30 (148 obs) right son=31 (2583 obs)
##   Primary splits:
##       total_day_minutes   < 244.65 to the right, improve=16.472980, (0 missing)
##       total_day_charge    < 41.59  to the right, improve=16.472980, (0 missing)
##       total_eve_minutes   < 249.15 to the right, improve= 9.194760, (0 missing)
##       total_eve_charge    < 21.175 to the right, improve= 9.194760, (0 missing)
##       total_night_minutes < 233.15 to the right, improve= 2.900066, (0 missing)
##   Surrogate splits:
##       total_day_charge < 41.59  to the right, agree=1, adj=1, (0 split)
## 
## Node number 26: 20 observations
##   predicted class=yes  expected loss=0.25  P(node) =0.005714286
##     class counts:    15     5
##    probabilities: 0.750 0.250 
## 
## Node number 27: 134 observations
##   predicted class=no   expected loss=0.1865672  P(node) =0.03828571
##     class counts:    25   109
##    probabilities: 0.187 0.813 
## 
## Node number 28: 50 observations
##   predicted class=yes  expected loss=0  P(node) =0.01428571
##     class counts:    50     0
##    probabilities: 1.000 0.000 
## 
## Node number 29: 228 observations,    complexity param=0.04940711
##   predicted class=no   expected loss=0.2324561  P(node) =0.06514286
##     class counts:    53   175
##    probabilities: 0.232 0.768 
##   left son=58 (44 obs) right son=59 (184 obs)
##   Primary splits:
##       total_intl_calls  < 2.5    to the left,  improve=64.240080, (0 missing)
##       total_day_minutes < 236.2  to the right, improve= 3.091144, (0 missing)
##       total_day_charge  < 40.155 to the right, improve= 3.091144, (0 missing)
##       total_eve_minutes < 272.9  to the right, improve= 2.752684, (0 missing)
##       total_eve_charge  < 23.195 to the right, improve= 2.752684, (0 missing)
##   Surrogate splits:
##       total_day_calls < 48     to the left,  agree=0.816, adj=0.045, (0 split)
## 
## Node number 30: 148 observations,    complexity param=0.01679842
##   predicted class=no   expected loss=0.277027  P(node) =0.04228571
##     class counts:    41   107
##    probabilities: 0.277 0.723 
##   left son=60 (33 obs) right son=61 (115 obs)
##   Primary splits:
##       total_eve_minutes     < 243.5  to the right, improve=19.614750, (0 missing)
##       total_eve_charge      < 20.695 to the right, improve=19.614750, (0 missing)
##       voice_mail_plan       splits as  LR,         improve= 7.572072, (0 missing)
##       number_vmail_messages < 5.5    to the left,  improve= 7.572072, (0 missing)
##       total_night_minutes   < 224    to the right, improve= 7.071938, (0 missing)
##   Surrogate splits:
##       total_eve_charge < 20.695 to the right, agree=1.000, adj=1.000, (0 split)
##       total_intl_calls < 8.5    to the right, agree=0.797, adj=0.091, (0 split)
## 
## Node number 31: 2583 observations,    complexity param=0.01054018
##   predicted class=no   expected loss=0.03445606  P(node) =0.738
##     class counts:    89  2494
##    probabilities: 0.034 0.966 
##   left son=62 (249 obs) right son=63 (2334 obs)
##   Primary splits:
##       total_eve_minutes   < 266.05 to the right, improve=4.468302, (0 missing)
##       total_eve_charge    < 22.615 to the right, improve=4.468302, (0 missing)
##       total_day_minutes   < 220.85 to the right, improve=3.194997, (0 missing)
##       total_day_charge    < 37.545 to the right, improve=3.194997, (0 missing)
##       total_night_minutes < 237.65 to the right, improve=1.415708, (0 missing)
##   Surrogate splits:
##       total_eve_charge < 22.615 to the right, agree=1, adj=1, (0 split)
## 
## Node number 58: 44 observations
##   predicted class=yes  expected loss=0  P(node) =0.01257143
##     class counts:    44     0
##    probabilities: 1.000 0.000 
## 
## Node number 59: 184 observations
##   predicted class=no   expected loss=0.04891304  P(node) =0.05257143
##     class counts:     9   175
##    probabilities: 0.049 0.951 
## 
## Node number 60: 33 observations
##   predicted class=yes  expected loss=0.2424242  P(node) =0.009428571
##     class counts:    25     8
##    probabilities: 0.758 0.242 
## 
## Node number 61: 115 observations
##   predicted class=no   expected loss=0.1391304  P(node) =0.03285714
##     class counts:    16    99
##    probabilities: 0.139 0.861 
## 
## Node number 62: 249 observations,    complexity param=0.01054018
##   predicted class=no   expected loss=0.124498  P(node) =0.07114286
##     class counts:    31   218
##    probabilities: 0.124 0.876 
##   left son=124 (38 obs) right son=125 (211 obs)
##   Primary splits:
##       total_day_minutes   < 220.25 to the right, improve=18.522580, (0 missing)
##       total_day_charge    < 37.44  to the right, improve=18.522580, (0 missing)
##       total_night_minutes < 231.8  to the right, improve= 6.237254, (0 missing)
##       total_night_charge  < 10.43  to the right, improve= 6.237254, (0 missing)
##       voice_mail_plan     splits as  LR,         improve= 2.147493, (0 missing)
##   Surrogate splits:
##       total_day_charge   < 37.44  to the right, agree=1.000, adj=1.000, (0 split)
##       total_intl_minutes < 2.75   to the left,  agree=0.851, adj=0.026, (0 split)
##       total_intl_charge  < 0.745  to the left,  agree=0.851, adj=0.026, (0 split)
## 
## Node number 63: 2334 observations
##   predicted class=no   expected loss=0.02485004  P(node) =0.6668571
##     class counts:    58  2276
##    probabilities: 0.025 0.975 
## 
## Node number 124: 38 observations,    complexity param=0.01054018
##   predicted class=yes  expected loss=0.4210526  P(node) =0.01085714
##     class counts:    22    16
##    probabilities: 0.579 0.421 
##   left son=248 (28 obs) right son=249 (10 obs)
##   Primary splits:
##       voice_mail_plan       splits as  LR,         improve=9.097744, (0 missing)
##       number_vmail_messages < 12     to the left,  improve=9.097744, (0 missing)
##       total_night_minutes   < 216.4  to the right, improve=3.924043, (0 missing)
##       total_night_charge    < 9.74   to the right, improve=3.924043, (0 missing)
##       total_day_calls       < 102    to the left,  improve=2.821700, (0 missing)
##   Surrogate splits:
##       number_vmail_messages < 12     to the left,  agree=1.000, adj=1.0, (0 split)
##       total_day_minutes     < 239.4  to the left,  agree=0.816, adj=0.3, (0 split)
##       total_day_charge      < 40.7   to the left,  agree=0.816, adj=0.3, (0 split)
##       total_eve_minutes     < 310.8  to the left,  agree=0.816, adj=0.3, (0 split)
##       total_eve_charge      < 26.42  to the left,  agree=0.816, adj=0.3, (0 split)
## 
## Node number 125: 211 observations
##   predicted class=no   expected loss=0.04265403  P(node) =0.06028571
##     class counts:     9   202
##    probabilities: 0.043 0.957 
## 
## Node number 248: 28 observations
##   predicted class=yes  expected loss=0.2142857  P(node) =0.008
##     class counts:    22     6
##    probabilities: 0.786 0.214 
## 
## Node number 249: 10 observations
##   predicted class=no   expected loss=0  P(node) =0.002857143
##     class counts:     0    10
##    probabilities: 0.000 1.000
s$cptable
##           CP nsplit rel error    xerror       xstd
## 1 0.11264822      0 1.0000000 1.0000000 0.04111655
## 2 0.08498024      1 0.8873518 0.9189723 0.03968453
## 3 0.07114625      2 0.8023715 0.8458498 0.03830434
## 4 0.04940711      4 0.6600791 0.6857708 0.03494155
## 5 0.03162055      7 0.4743083 0.4901186 0.02999968
## 6 0.01976285      8 0.4426877 0.4723320 0.02949102
## 7 0.01679842      9 0.4229249 0.4703557 0.02943377
## 8 0.01054018     11 0.3893281 0.4367589 0.02843690
## 9 0.01000000     14 0.3577075 0.4387352 0.02849682
#畫出決策樹
par(mfrow=c(1,1))
?plot.rpart
plot(churn.rp, uniform=TRUE,branch = 0.6, margin=0.1)
text(churn.rp, cex=0.7)

#install.packages('rpart.plot')
library('rpart.plot')
rpart.plot(churn.rp)

cp

Prune

printcp(churn.rp)
## 
## Classification tree:
## rpart(formula = churn ~ ., data = trainset, control = con)
## 
## Variables actually used in tree construction:
## [1] international_plan            number_customer_service_calls
## [3] total_day_minutes             total_eve_minutes            
## [5] total_intl_calls              total_intl_minutes           
## [7] voice_mail_plan              
## 
## Root node error: 506/3500 = 0.14457
## 
## n= 3500 
## 
##         CP nsplit rel error  xerror     xstd
## 1 0.112648      0   1.00000 1.00000 0.041117
## 2 0.084980      1   0.88735 0.91897 0.039685
## 3 0.071146      2   0.80237 0.84585 0.038304
## 4 0.049407      4   0.66008 0.68577 0.034942
## 5 0.031621      7   0.47431 0.49012 0.030000
## 6 0.019763      8   0.44269 0.47233 0.029491
## 7 0.016798      9   0.42292 0.47036 0.029434
## 8 0.010540     11   0.38933 0.43676 0.028437
## 9 0.010000     14   0.35771 0.43874 0.028497
plotcp(churn.rp)

#找出minimum cross-validation errors
min_row = which.min(churn.rp$cptable[,"xerror"])
churn.cp = churn.rp$cptable[min_row, "CP"]
#將churn.cp設為臨界值來修剪樹
prune.tree=prune(churn.rp, cp=churn.cp)
plot(prune.tree, uniform=TRUE,branch = 0.6, margin=0.1)
text(prune.tree, all=TRUE, use.n=TRUE, cex=0.7)

test_tree = prune(churn.rp,cp=0.04)
plot(test_tree, margin=0.1)
text(test_tree, all=TRUE, use.n=TRUE, cex=0.7)

模型驗證

library('caret')
## Loading required package: lattice
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 3.5.2
library('e1071')
predictions <-predict(prune.tree, testset, type='class')
table(predictions,testset$churn)
##            
## predictions  yes   no
##         yes  136   31
##         no    65 1268
confusionMatrix(table(predictions, testset$churn))
## Confusion Matrix and Statistics
## 
##            
## predictions  yes   no
##         yes  136   31
##         no    65 1268
##                                           
##                Accuracy : 0.936           
##                  95% CI : (0.9224, 0.9479)
##     No Information Rate : 0.866           
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.703           
##  Mcnemar's Test P-Value : 0.000757        
##                                           
##             Sensitivity : 0.67662         
##             Specificity : 0.97614         
##          Pos Pred Value : 0.81437         
##          Neg Pred Value : 0.95124         
##              Prevalence : 0.13400         
##          Detection Rate : 0.09067         
##    Detection Prevalence : 0.11133         
##       Balanced Accuracy : 0.82638         
##                                           
##        'Positive' Class : yes             
##