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
## %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 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
#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"
#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,]
#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)
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
##