自由時報爬蟲
library(rvest)
## Loading required package: xml2
ltn <- read_html('http://news.ltn.com.tw/list/breakingnews')
#as.character(ltn)
news <- ltn %>%
html_nodes('.imm li')
as.character(news[1])
## [1] "<li>\n\t\t\t\t\t<a href=\"http://news.ltn.com.tw/news/life/breakingnews/2524338\" data-desc=\"P:0:高市3原民今空大畢業 原民會主委到場鼓勵\" class=\"ph\">\n\t\t\t\t\t\t<img src=\"http://img.ltn.com.tw/Upload/liveNews/BigPic/600_2524338_1.jpg\"></a><a class=\"tit\" href=\"http://news.ltn.com.tw/news/life/breakingnews/2524338\" data-desc=\"T:0:高市3原民今空大畢業 原民會主委到場鼓勵\">\n\t\t\t\t\t\t<span>17:23</span>\n\t\t\t\t\t\t<p>高市3原民今空大畢業 原民會主委到場鼓勵\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t</a><div class=\"tagarea\">\n<a href=\"list/breakingnews/life\" class=\"immtag chan\" data-desc=\"T:0:生活\">生活</a>\n <a href=\"list/breakingnews/Kaohsiung\" class=\"immtag\" data-desc=\"T:0:生活\">高雄市</a>\n </div>\n\t\t\t\t</li>"
links <- news %>%
html_nodes('a.ph') %>%
html_attr('href')
titles <- news %>%
html_nodes('p') %>%
html_text() %>%
trimws()
#?trimws
dt <- news %>%
html_nodes('a.tit > span') %>%
html_text()
tags <- news %>%
html_nodes('.tagarea') %>%
html_text() %>%
trimws() %>%
gsub(pattern = '\n| +', ' ', x = .)
?gsub
## starting httpd help server ...
## done
# '\n| +'
# replace newline and multiple space to ' '
ltn_news <- data.frame(dt, titles, links, tags)
write.csv(x = ltn_news, file = 'ltn_news.csv')
SQL
show databases;
use orders;
show tables;
create table customer(
id int AUTO_INCREMENT PRIMARY KEY,
name varchar(50),
gender varchar(1),
address varchar(200)
);
ALTER TABLE customer
CHANGE COLUMN name cname VARCHAR(50) NOT NULL,
ADD COLUMN phone VARCHAR(10);
DESCRIBE customer;
insert into customer(cname, gender, address) values('John', 'M', 'Chiayi');
insert into customer(cname, gender, address) values('Mary', 'F', 'Tainan');
insert into customer(cname, gender, address) values('Brad', 'M', 'Chiayi');
select * from customer;
select cname, gender from customer;
select cname, gender from customer where gender = 'M';
select count(*) from customer;
SELECT gender, count(*) FROM customer GROUP BY gender;
SELECT gender, count(*) FROM customer GROUP BY gender HAVING count(*) >= 2;
select * from customer;
update customer set cname = 'Johnny' where id = 1;
select * from customer;
delete from customer where id = 1;
select * from customer;
delete from customer;
drop table customer;
RJDBC
library(RJDBC)
## Loading required package: DBI
## Loading required package: rJava
jar.loc <- 'C:\\Program Files (x86)\\MySQL\\Connector J 8.0\\mysql-connector-java-8.0.12.jar'
drv <- JDBC("com.mysql.jdbc.Driver",jar.loc, identifier.quote="`")
conn <- dbConnect(drv,
"jdbc:mysql://localhost/appledaily?serverTimezone=UTC"
, "root", "test")
data(iris)
dbWriteTable(conn, 'iris_data', iris)
## [1] TRUE
dbListTables(conn)
## [1] "columns_priv"
## [2] "component"
## [3] "db"
## [4] "default_roles"
## [5] "engine_cost"
## [6] "func"
## [7] "general_log"
## [8] "global_grants"
## [9] "gtid_executed"
## [10] "help_category"
## [11] "help_keyword"
## [12] "help_relation"
## [13] "help_topic"
## [14] "innodb_index_stats"
## [15] "innodb_table_stats"
## [16] "password_history"
## [17] "plugin"
## [18] "procs_priv"
## [19] "proxies_priv"
## [20] "role_edges"
## [21] "server_cost"
## [22] "servers"
## [23] "slave_master_info"
## [24] "slave_relay_log_info"
## [25] "slave_worker_info"
## [26] "slow_log"
## [27] "tables_priv"
## [28] "time_zone"
## [29] "time_zone_leap_second"
## [30] "time_zone_name"
## [31] "time_zone_transition"
## [32] "time_zone_transition_type"
## [33] "user"
## [34] "accounts"
## [35] "cond_instances"
## [36] "data_lock_waits"
## [37] "data_locks"
## [38] "events_errors_summary_by_account_by_error"
## [39] "events_errors_summary_by_host_by_error"
## [40] "events_errors_summary_by_thread_by_error"
## [41] "events_errors_summary_by_user_by_error"
## [42] "events_errors_summary_global_by_error"
## [43] "events_stages_current"
## [44] "events_stages_history"
## [45] "events_stages_history_long"
## [46] "events_stages_summary_by_account_by_event_name"
## [47] "events_stages_summary_by_host_by_event_name"
## [48] "events_stages_summary_by_thread_by_event_name"
## [49] "events_stages_summary_by_user_by_event_name"
## [50] "events_stages_summary_global_by_event_name"
## [51] "events_statements_current"
## [52] "events_statements_histogram_by_digest"
## [53] "events_statements_histogram_global"
## [54] "events_statements_history"
## [55] "events_statements_history_long"
## [56] "events_statements_summary_by_account_by_event_name"
## [57] "events_statements_summary_by_digest"
## [58] "events_statements_summary_by_host_by_event_name"
## [59] "events_statements_summary_by_program"
## [60] "events_statements_summary_by_thread_by_event_name"
## [61] "events_statements_summary_by_user_by_event_name"
## [62] "events_statements_summary_global_by_event_name"
## [63] "events_transactions_current"
## [64] "events_transactions_history"
## [65] "events_transactions_history_long"
## [66] "events_transactions_summary_by_account_by_event_name"
## [67] "events_transactions_summary_by_host_by_event_name"
## [68] "events_transactions_summary_by_thread_by_event_name"
## [69] "events_transactions_summary_by_user_by_event_name"
## [70] "events_transactions_summary_global_by_event_name"
## [71] "events_waits_current"
## [72] "events_waits_history"
## [73] "events_waits_history_long"
## [74] "events_waits_summary_by_account_by_event_name"
## [75] "events_waits_summary_by_host_by_event_name"
## [76] "events_waits_summary_by_instance"
## [77] "events_waits_summary_by_thread_by_event_name"
## [78] "events_waits_summary_by_user_by_event_name"
## [79] "events_waits_summary_global_by_event_name"
## [80] "file_instances"
## [81] "file_summary_by_event_name"
## [82] "file_summary_by_instance"
## [83] "global_status"
## [84] "global_variables"
## [85] "host_cache"
## [86] "hosts"
## [87] "log_status"
## [88] "memory_summary_by_account_by_event_name"
## [89] "memory_summary_by_host_by_event_name"
## [90] "memory_summary_by_thread_by_event_name"
## [91] "memory_summary_by_user_by_event_name"
## [92] "memory_summary_global_by_event_name"
## [93] "metadata_locks"
## [94] "mutex_instances"
## [95] "objects_summary_global_by_type"
## [96] "performance_timers"
## [97] "persisted_variables"
## [98] "prepared_statements_instances"
## [99] "replication_applier_configuration"
## [100] "replication_applier_filters"
## [101] "replication_applier_global_filters"
## [102] "replication_applier_status"
## [103] "replication_applier_status_by_coordinator"
## [104] "replication_applier_status_by_worker"
## [105] "replication_connection_configuration"
## [106] "replication_connection_status"
## [107] "replication_group_member_stats"
## [108] "replication_group_members"
## [109] "rwlock_instances"
## [110] "session_account_connect_attrs"
## [111] "session_connect_attrs"
## [112] "session_status"
## [113] "session_variables"
## [114] "setup_actors"
## [115] "setup_consumers"
## [116] "setup_instruments"
## [117] "setup_objects"
## [118] "setup_threads"
## [119] "socket_instances"
## [120] "socket_summary_by_event_name"
## [121] "socket_summary_by_instance"
## [122] "status_by_account"
## [123] "status_by_host"
## [124] "status_by_thread"
## [125] "status_by_user"
## [126] "table_handles"
## [127] "table_io_waits_summary_by_index_usage"
## [128] "table_io_waits_summary_by_table"
## [129] "table_lock_waits_summary_by_table"
## [130] "threads"
## [131] "user_defined_functions"
## [132] "user_variables_by_thread"
## [133] "users"
## [134] "variables_by_thread"
## [135] "variables_info"
## [136] "CHARACTER_SETS"
## [137] "COLLATION_CHARACTER_SET_APPLICABILITY"
## [138] "COLLATIONS"
## [139] "COLUMN_PRIVILEGES"
## [140] "COLUMN_STATISTICS"
## [141] "COLUMNS"
## [142] "ENGINES"
## [143] "EVENTS"
## [144] "FILES"
## [145] "INNODB_BUFFER_PAGE"
## [146] "INNODB_BUFFER_PAGE_LRU"
## [147] "INNODB_BUFFER_POOL_STATS"
## [148] "INNODB_CACHED_INDEXES"
## [149] "INNODB_CMP"
## [150] "INNODB_CMP_PER_INDEX"
## [151] "INNODB_CMP_PER_INDEX_RESET"
## [152] "INNODB_CMP_RESET"
## [153] "INNODB_CMPMEM"
## [154] "INNODB_CMPMEM_RESET"
## [155] "INNODB_COLUMNS"
## [156] "INNODB_DATAFILES"
## [157] "INNODB_FIELDS"
## [158] "INNODB_FOREIGN"
## [159] "INNODB_FOREIGN_COLS"
## [160] "INNODB_FT_BEING_DELETED"
## [161] "INNODB_FT_CONFIG"
## [162] "INNODB_FT_DEFAULT_STOPWORD"
## [163] "INNODB_FT_DELETED"
## [164] "INNODB_FT_INDEX_CACHE"
## [165] "INNODB_FT_INDEX_TABLE"
## [166] "INNODB_INDEXES"
## [167] "INNODB_METRICS"
## [168] "INNODB_TABLES"
## [169] "INNODB_TABLESPACES"
## [170] "INNODB_TABLESPACES_BRIEF"
## [171] "INNODB_TABLESTATS"
## [172] "INNODB_TEMP_TABLE_INFO"
## [173] "INNODB_TRX"
## [174] "INNODB_VIRTUAL"
## [175] "KEY_COLUMN_USAGE"
## [176] "KEYWORDS"
## [177] "OPTIMIZER_TRACE"
## [178] "PARAMETERS"
## [179] "PARTITIONS"
## [180] "PLUGINS"
## [181] "PROCESSLIST"
## [182] "PROFILING"
## [183] "REFERENTIAL_CONSTRAINTS"
## [184] "RESOURCE_GROUPS"
## [185] "ROUTINES"
## [186] "SCHEMA_PRIVILEGES"
## [187] "SCHEMATA"
## [188] "ST_GEOMETRY_COLUMNS"
## [189] "ST_SPATIAL_REFERENCE_SYSTEMS"
## [190] "STATISTICS"
## [191] "TABLE_CONSTRAINTS"
## [192] "TABLE_PRIVILEGES"
## [193] "TABLES"
## [194] "TABLESPACES"
## [195] "TRIGGERS"
## [196] "USER_PRIVILEGES"
## [197] "VIEWS"
## [198] "apple"
## [199] "iris_data"
## [200] "news_main"
## [201] "sys_config"
## [202] "host_summary"
## [203] "host_summary_by_file_io"
## [204] "host_summary_by_file_io_type"
## [205] "host_summary_by_stages"
## [206] "host_summary_by_statement_latency"
## [207] "host_summary_by_statement_type"
## [208] "innodb_buffer_stats_by_schema"
## [209] "innodb_buffer_stats_by_table"
## [210] "innodb_lock_waits"
## [211] "io_by_thread_by_latency"
## [212] "io_global_by_file_by_bytes"
## [213] "io_global_by_file_by_latency"
## [214] "io_global_by_wait_by_bytes"
## [215] "io_global_by_wait_by_latency"
## [216] "latest_file_io"
## [217] "memory_by_host_by_current_bytes"
## [218] "memory_by_thread_by_current_bytes"
## [219] "memory_by_user_by_current_bytes"
## [220] "memory_global_by_current_bytes"
## [221] "memory_global_total"
## [222] "metrics"
## [223] "processlist"
## [224] "ps_check_lost_instrumentation"
## [225] "schema_auto_increment_columns"
## [226] "schema_index_statistics"
## [227] "schema_object_overview"
## [228] "schema_redundant_indexes"
## [229] "schema_table_lock_waits"
## [230] "schema_table_statistics"
## [231] "schema_table_statistics_with_buffer"
## [232] "schema_tables_with_full_table_scans"
## [233] "schema_unused_indexes"
## [234] "session"
## [235] "session_ssl_status"
## [236] "statement_analysis"
## [237] "statements_with_errors_or_warnings"
## [238] "statements_with_full_table_scans"
## [239] "statements_with_runtimes_in_95th_percentile"
## [240] "statements_with_sorting"
## [241] "statements_with_temp_tables"
## [242] "user_summary"
## [243] "user_summary_by_file_io"
## [244] "user_summary_by_file_io_type"
## [245] "user_summary_by_stages"
## [246] "user_summary_by_statement_latency"
## [247] "user_summary_by_statement_type"
## [248] "version"
## [249] "wait_classes_global_by_avg_latency"
## [250] "wait_classes_global_by_latency"
## [251] "waits_by_host_by_latency"
## [252] "waits_by_user_by_latency"
## [253] "waits_global_by_latency"
## [254] "x$host_summary"
## [255] "x$host_summary_by_file_io"
## [256] "x$host_summary_by_file_io_type"
## [257] "x$host_summary_by_stages"
## [258] "x$host_summary_by_statement_latency"
## [259] "x$host_summary_by_statement_type"
## [260] "x$innodb_buffer_stats_by_schema"
## [261] "x$innodb_buffer_stats_by_table"
## [262] "x$innodb_lock_waits"
## [263] "x$io_by_thread_by_latency"
## [264] "x$io_global_by_file_by_bytes"
## [265] "x$io_global_by_file_by_latency"
## [266] "x$io_global_by_wait_by_bytes"
## [267] "x$io_global_by_wait_by_latency"
## [268] "x$latest_file_io"
## [269] "x$memory_by_host_by_current_bytes"
## [270] "x$memory_by_thread_by_current_bytes"
## [271] "x$memory_by_user_by_current_bytes"
## [272] "x$memory_global_by_current_bytes"
## [273] "x$memory_global_total"
## [274] "x$processlist"
## [275] "x$ps_digest_95th_percentile_by_avg_us"
## [276] "x$ps_digest_avg_latency_distribution"
## [277] "x$ps_schema_table_statistics_io"
## [278] "x$schema_flattened_keys"
## [279] "x$schema_index_statistics"
## [280] "x$schema_table_lock_waits"
## [281] "x$schema_table_statistics"
## [282] "x$schema_table_statistics_with_buffer"
## [283] "x$schema_tables_with_full_table_scans"
## [284] "x$session"
## [285] "x$statement_analysis"
## [286] "x$statements_with_errors_or_warnings"
## [287] "x$statements_with_full_table_scans"
## [288] "x$statements_with_runtimes_in_95th_percentile"
## [289] "x$statements_with_sorting"
## [290] "x$statements_with_temp_tables"
## [291] "x$user_summary"
## [292] "x$user_summary_by_file_io"
## [293] "x$user_summary_by_file_io_type"
## [294] "x$user_summary_by_stages"
## [295] "x$user_summary_by_statement_latency"
## [296] "x$user_summary_by_statement_type"
## [297] "x$wait_classes_global_by_avg_latency"
## [298] "x$wait_classes_global_by_latency"
## [299] "x$waits_by_host_by_latency"
## [300] "x$waits_by_user_by_latency"
## [301] "x$waits_global_by_latency"
res <- dbGetQuery(conn, "select * from iris_data where species = 'setosa' and `Sepal.Length` >= 5")
res
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 5.0 3.6 1.4 0.2 setosa
## 3 5.4 3.9 1.7 0.4 setosa
## 4 5.0 3.4 1.5 0.2 setosa
## 5 5.4 3.7 1.5 0.2 setosa
## 6 5.8 4.0 1.2 0.2 setosa
## 7 5.7 4.4 1.5 0.4 setosa
## 8 5.4 3.9 1.3 0.4 setosa
## 9 5.1 3.5 1.4 0.3 setosa
## 10 5.7 3.8 1.7 0.3 setosa
## 11 5.1 3.8 1.5 0.3 setosa
## 12 5.4 3.4 1.7 0.2 setosa
## 13 5.1 3.7 1.5 0.4 setosa
## 14 5.1 3.3 1.7 0.5 setosa
## 15 5.0 3.0 1.6 0.2 setosa
## 16 5.0 3.4 1.6 0.4 setosa
## 17 5.2 3.5 1.5 0.2 setosa
## 18 5.2 3.4 1.4 0.2 setosa
## 19 5.4 3.4 1.5 0.4 setosa
## 20 5.2 4.1 1.5 0.1 setosa
## 21 5.5 4.2 1.4 0.2 setosa
## 22 5.0 3.2 1.2 0.2 setosa
## 23 5.5 3.5 1.3 0.2 setosa
## 24 5.1 3.4 1.5 0.2 setosa
## 25 5.0 3.5 1.3 0.3 setosa
## 26 5.0 3.5 1.6 0.6 setosa
## 27 5.1 3.8 1.9 0.4 setosa
## 28 5.1 3.8 1.6 0.2 setosa
## 29 5.3 3.7 1.5 0.2 setosa
## 30 5.0 3.3 1.4 0.2 setosa
if(dbExistsTable(conn,'iris_data')){
dbRemoveTable(conn, 'iris_data')
}
## logical(0)
#dbWriteTable(conn, 'apple', applenews)
dbDisconnect(conn)
## [1] TRUE
create table
CREATE TABLE `news_main` (
`content` text,
`title` varchar(1000) DEFAULT NULL,
`dt` datetime DEFAULT NULL,
`category` varchar(100) DEFAULT NULL,
`view_cnt` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
insert apple news into database
load("C:/Users/USER/Downloads/applenews.RData")
library(RJDBC)
jar.loc <- 'C:\\Program Files (x86)\\MySQL\\Connector J 8.0\\mysql-connector-java-8.0.12.jar'
drv <- JDBC("com.mysql.jdbc.Driver",jar.loc, identifier.quote="`")
conn <- dbConnect(drv,
"jdbc:mysql://localhost/appledaily?serverTimezone=UTC"
, "root", "test")
dbWriteTable(conn, 'news_main', applenews,
append=TRUE,row.names=FALSE,overwrite=FALSE)
## [1] TRUE
res <- dbGetQuery(conn, "select * from news_main where category = '娛樂'")
#res
dbDisconnect(conn)
## [1] TRUE
用SQL 分析資料
library(RJDBC)
jar.loc <- 'C:\\Program Files (x86)\\MySQL\\Connector J 8.0\\mysql-connector-java-8.0.12.jar'
drv <- JDBC("com.mysql.jdbc.Driver",jar.loc, identifier.quote="`")
conn <- dbConnect(drv,
"jdbc:mysql://localhost/appledaily?serverTimezone=UTC"
, "root", "test")
res <- dbGetQuery(conn, "select category, count(*) as cnt from news_main group by category")
barplot(res$cnt, names.arg = res$category)

dbDisconnect(conn)
## [1] TRUE
applenews$view_cnt <- as.numeric(applenews$view_cnt)
tapply(applenews$view_cnt, applenews$category, mean)
## 3C 正妹 生活
## 3954.270 84118.625 11469.141
## 地產 社會 政治
## 6900.375 29493.557 11901.958
## 娛樂 時尚 財經
## 31601.814 6855.237 5109.446
## 動物 國際 國際","LA","SF","NY","US
## 4741.808 9104.839 4847.444
## 國際","SF","US 搜奇 論壇
## 3721.000 12151.036 5683.491
## 體育
## 16821.758
DPLYR
head(applenews[applenews$category == '娛樂', ])
## content
## 16 澎恰恰今簽下新人張芳瑜,準備栽培她演出台灣音樂劇。澎恰恰透露張芳瑜是美國百老匯授權的《媽媽咪呀》國際中文版女主角,巡演超過900場,潛力無窮,「看好她未來是台灣音樂劇第一名伶」。張芳瑜現場也進行拜師儀式,向澎恰恰下跪奉茶,以示慎重。(蔡維歆/台北報導)<U+00A0>
## 21 肯亞警方強押45名台灣人遣送中國,輿論譁然。「星光幫」冠軍賴銘偉有感,改陳奕迅《你的背包》為《你的台胞》,要唱給話術不輸詐騙集團的中國人民共和國與中華民國政府。(娛樂中心/綜合報導)<U+00A0> 肯亞被判無罪釋放的台籍嫌犯(綠衣者)竟被押送到中國。新華社
## 32 藝人白冰冰和日本知名漫畫家<U+68B6>原一騎曾有一段婚姻,兩人生下1女白曉燕,然而在1997年4月14日這天,年僅16歲的白曉燕在上學途中,遭到歹徒陳進興、林春生綁架並撕票,手段極其殘忍,命案震驚全台。時隔19年,白冰冰今凌晨在臉書po文悼念愛女,堅強地說不能忘記曉燕受難的時刻,才能為所有受難者發聲。<U+00A0>白冰冰在臉書談及白曉燕命案,感嘆時光飛逝,「如夢一般,曾經怨,哭,痛苦、沮喪、崩潰」,但她滿懷感恩,感謝這段時間所有的好朋友,用各自的宗教信仰幫她度過難過的那幾年,也感謝大家惦記著曉燕,昨天還有人送花、安慰及祝福。<U+00A0>她感動地說:「我會記住大家的好,現在能過平安的日子,但不能忘懷曉燕受難的那個時刻,才能勇敢的為所有受難者發聲。」白冰冰昨天一整個早上在佛堂念經跟曉燕說話,「下午整理東西,整理心情,天亮後又是一個新的開始」,堅強的母性令人心疼。(陳嘉婉/綜合報導)<U+00A0> 白冰冰談及白曉燕命案,感嘆時光飛逝。翻攝白冰冰臉書
## 40 今天好萊塢喜事連連,繼「花邊教主」布蕾克萊弗莉有喜,為老公萊恩雷諾斯懷了第2胎,「好萊塢男神」萊恩葛斯林的42歲性感女友伊娃曼德斯也傳出懷孕,再度成為高齡產婦。<U+00A0>葛斯林2012年拍攝《末日車神》時與伊娃曼德斯譜戀曲,交往多年一直遲遲沒有結婚,但2人已經育有1女,現又傳出有了第2個愛的結晶,伊娃曼德斯被拍到出現在洛杉磯,以大包包遮住腹部,疑似想遮掩孕肚。(封以恩/綜合報導)<U+00A0> 伊娃曼德斯(左)和萊恩葛斯林交往多年未婚,但已育有1女。翻攝每日郵報
## 47 隋棠今出席阿瘦皮鞋活動,力挺全天下辛勞的媽咪,她說,很多現代媽媽都是身兼數職,格外令人心疼。談到今年母親節,她說是她當媽媽後第一次過節,自己為人母後,更能體驗母親的辛勞,今年想要好好幫媽媽和婆婆過節,不過距離母親節還有1個月,目前還沒有具體想法。<U+00A0>前兩天隋棠和老公帶兒子Max開車到台南、墾丁旅行,她透露因為表妹在台南開民宿,順道去體驗了一下,台南美食果然名不虛傳,她跟Max吃很多,母子倆回台北竟然雙雙變胖了,而第一次長途旅行的Max也十分配合,路上不是吃就是睡,7個多月大的他,上車睡覺、直接尿尿,讓她覺得一點也不麻煩。(葉婉如/台北報導)<U+00A0> 隋棠透露前幾天到台南吃喝竟吃胖了。阿瘦皮鞋提供 隋棠帶兒子Max第一次長途旅行,兒子在車上很乖巧。翻攝隋棠臉書
## 50 日本型男伊勢谷友介被爆和名媛模特兒森星半同居,2人同進同出他的住處,他還開車送女方出門工作,報導曝光後,大家才知道原來他和長澤雅美早就切了!<U+00A0>將滿40歲的伊勢谷友介,歷任女友包括廣末涼子、吉川雛乃、木村佳乃等,一字排開羨煞世間男性。據《FRIDAY》周刊,他和28歲的長澤雅美2012年展開交往,男方友人透露,因雅美頻頻催婚,他斷然拒絕,2人大吵一架,已於1年前分手。<U+00A0>他的新歡森星長相甜美,本月22日滿24歲,曾在巴黎生活,今年3月剛從慶應大學畢業,祖母是名設計師森英惠,姊姊森泉也是藝人。去年11月伊勢谷友介上她擔任助理主持的料理節目,交換聯絡方式後來電,迅速進展到半同居,情場浪子和千金小姐的配對備受矚目。(吳惠菁/綜合報導)<U+00A0> 伊勢谷友介(左)和森星打扮休閒一起遛狗。翻攝《FRIDAY》森泉(右)、森星是日本名媛姊妹花。翻攝森星IG
## title dt category
## 16 澎恰恰收女弟子 拱當台灣第一名伶 2016-04-15 14:17:00 娛樂
## 21 【唱新聞】詐騙嗎?R.O.C.有CHINA但不是CHINA 2016-04-15 14:00:00 娛樂
## 32 白曉燕命案19年了 白冰冰「不能忘」 2016-04-15 13:49:00 娛樂
## 40 好萊塢男神好威 女友再當高齡產婦 2016-04-15 13:40:00 娛樂
## 47 隋棠帶兒遠征南台灣 吃成膨皮母子檔 2016-04-15 13:30:00 娛樂
## 50 伊勢谷友介掰了長澤雅美 半同居小16歲辣模 2016-04-15 13:23:00 娛樂
## view_cnt
## 16 1749
## 21 11696
## 32 3329
## 40 4307
## 47 4651
## 50 5141
library(dplyr)
##
## 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
head(filter(applenews, category == '娛樂'))
## content
## 1 澎恰恰今簽下新人張芳瑜,準備栽培她演出台灣音樂劇。澎恰恰透露張芳瑜是美國百老匯授權的《媽媽咪呀》國際中文版女主角,巡演超過900場,潛力無窮,「看好她未來是台灣音樂劇第一名伶」。張芳瑜現場也進行拜師儀式,向澎恰恰下跪奉茶,以示慎重。(蔡維歆/台北報導)<U+00A0>
## 2 肯亞警方強押45名台灣人遣送中國,輿論譁然。「星光幫」冠軍賴銘偉有感,改陳奕迅《你的背包》為《你的台胞》,要唱給話術不輸詐騙集團的中國人民共和國與中華民國政府。(娛樂中心/綜合報導)<U+00A0> 肯亞被判無罪釋放的台籍嫌犯(綠衣者)竟被押送到中國。新華社
## 3 藝人白冰冰和日本知名漫畫家<U+68B6>原一騎曾有一段婚姻,兩人生下1女白曉燕,然而在1997年4月14日這天,年僅16歲的白曉燕在上學途中,遭到歹徒陳進興、林春生綁架並撕票,手段極其殘忍,命案震驚全台。時隔19年,白冰冰今凌晨在臉書po文悼念愛女,堅強地說不能忘記曉燕受難的時刻,才能為所有受難者發聲。<U+00A0>白冰冰在臉書談及白曉燕命案,感嘆時光飛逝,「如夢一般,曾經怨,哭,痛苦、沮喪、崩潰」,但她滿懷感恩,感謝這段時間所有的好朋友,用各自的宗教信仰幫她度過難過的那幾年,也感謝大家惦記著曉燕,昨天還有人送花、安慰及祝福。<U+00A0>她感動地說:「我會記住大家的好,現在能過平安的日子,但不能忘懷曉燕受難的那個時刻,才能勇敢的為所有受難者發聲。」白冰冰昨天一整個早上在佛堂念經跟曉燕說話,「下午整理東西,整理心情,天亮後又是一個新的開始」,堅強的母性令人心疼。(陳嘉婉/綜合報導)<U+00A0> 白冰冰談及白曉燕命案,感嘆時光飛逝。翻攝白冰冰臉書
## 4 今天好萊塢喜事連連,繼「花邊教主」布蕾克萊弗莉有喜,為老公萊恩雷諾斯懷了第2胎,「好萊塢男神」萊恩葛斯林的42歲性感女友伊娃曼德斯也傳出懷孕,再度成為高齡產婦。<U+00A0>葛斯林2012年拍攝《末日車神》時與伊娃曼德斯譜戀曲,交往多年一直遲遲沒有結婚,但2人已經育有1女,現又傳出有了第2個愛的結晶,伊娃曼德斯被拍到出現在洛杉磯,以大包包遮住腹部,疑似想遮掩孕肚。(封以恩/綜合報導)<U+00A0> 伊娃曼德斯(左)和萊恩葛斯林交往多年未婚,但已育有1女。翻攝每日郵報
## 5 隋棠今出席阿瘦皮鞋活動,力挺全天下辛勞的媽咪,她說,很多現代媽媽都是身兼數職,格外令人心疼。談到今年母親節,她說是她當媽媽後第一次過節,自己為人母後,更能體驗母親的辛勞,今年想要好好幫媽媽和婆婆過節,不過距離母親節還有1個月,目前還沒有具體想法。<U+00A0>前兩天隋棠和老公帶兒子Max開車到台南、墾丁旅行,她透露因為表妹在台南開民宿,順道去體驗了一下,台南美食果然名不虛傳,她跟Max吃很多,母子倆回台北竟然雙雙變胖了,而第一次長途旅行的Max也十分配合,路上不是吃就是睡,7個多月大的他,上車睡覺、直接尿尿,讓她覺得一點也不麻煩。(葉婉如/台北報導)<U+00A0> 隋棠透露前幾天到台南吃喝竟吃胖了。阿瘦皮鞋提供 隋棠帶兒子Max第一次長途旅行,兒子在車上很乖巧。翻攝隋棠臉書
## 6 日本型男伊勢谷友介被爆和名媛模特兒森星半同居,2人同進同出他的住處,他還開車送女方出門工作,報導曝光後,大家才知道原來他和長澤雅美早就切了!<U+00A0>將滿40歲的伊勢谷友介,歷任女友包括廣末涼子、吉川雛乃、木村佳乃等,一字排開羨煞世間男性。據《FRIDAY》周刊,他和28歲的長澤雅美2012年展開交往,男方友人透露,因雅美頻頻催婚,他斷然拒絕,2人大吵一架,已於1年前分手。<U+00A0>他的新歡森星長相甜美,本月22日滿24歲,曾在巴黎生活,今年3月剛從慶應大學畢業,祖母是名設計師森英惠,姊姊森泉也是藝人。去年11月伊勢谷友介上她擔任助理主持的料理節目,交換聯絡方式後來電,迅速進展到半同居,情場浪子和千金小姐的配對備受矚目。(吳惠菁/綜合報導)<U+00A0> 伊勢谷友介(左)和森星打扮休閒一起遛狗。翻攝《FRIDAY》森泉(右)、森星是日本名媛姊妹花。翻攝森星IG
## 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 娛樂
## view_cnt
## 1 1749
## 2 11696
## 3 3329
## 4 4307
## 5 4651
## 6 5141
head(filter(applenews, category == '娛樂' & view_cnt >= 100))
## content
## 1 澎恰恰今簽下新人張芳瑜,準備栽培她演出台灣音樂劇。澎恰恰透露張芳瑜是美國百老匯授權的《媽媽咪呀》國際中文版女主角,巡演超過900場,潛力無窮,「看好她未來是台灣音樂劇第一名伶」。張芳瑜現場也進行拜師儀式,向澎恰恰下跪奉茶,以示慎重。(蔡維歆/台北報導)<U+00A0>
## 2 肯亞警方強押45名台灣人遣送中國,輿論譁然。「星光幫」冠軍賴銘偉有感,改陳奕迅《你的背包》為《你的台胞》,要唱給話術不輸詐騙集團的中國人民共和國與中華民國政府。(娛樂中心/綜合報導)<U+00A0> 肯亞被判無罪釋放的台籍嫌犯(綠衣者)竟被押送到中國。新華社
## 3 藝人白冰冰和日本知名漫畫家<U+68B6>原一騎曾有一段婚姻,兩人生下1女白曉燕,然而在1997年4月14日這天,年僅16歲的白曉燕在上學途中,遭到歹徒陳進興、林春生綁架並撕票,手段極其殘忍,命案震驚全台。時隔19年,白冰冰今凌晨在臉書po文悼念愛女,堅強地說不能忘記曉燕受難的時刻,才能為所有受難者發聲。<U+00A0>白冰冰在臉書談及白曉燕命案,感嘆時光飛逝,「如夢一般,曾經怨,哭,痛苦、沮喪、崩潰」,但她滿懷感恩,感謝這段時間所有的好朋友,用各自的宗教信仰幫她度過難過的那幾年,也感謝大家惦記著曉燕,昨天還有人送花、安慰及祝福。<U+00A0>她感動地說:「我會記住大家的好,現在能過平安的日子,但不能忘懷曉燕受難的那個時刻,才能勇敢的為所有受難者發聲。」白冰冰昨天一整個早上在佛堂念經跟曉燕說話,「下午整理東西,整理心情,天亮後又是一個新的開始」,堅強的母性令人心疼。(陳嘉婉/綜合報導)<U+00A0> 白冰冰談及白曉燕命案,感嘆時光飛逝。翻攝白冰冰臉書
## 4 今天好萊塢喜事連連,繼「花邊教主」布蕾克萊弗莉有喜,為老公萊恩雷諾斯懷了第2胎,「好萊塢男神」萊恩葛斯林的42歲性感女友伊娃曼德斯也傳出懷孕,再度成為高齡產婦。<U+00A0>葛斯林2012年拍攝《末日車神》時與伊娃曼德斯譜戀曲,交往多年一直遲遲沒有結婚,但2人已經育有1女,現又傳出有了第2個愛的結晶,伊娃曼德斯被拍到出現在洛杉磯,以大包包遮住腹部,疑似想遮掩孕肚。(封以恩/綜合報導)<U+00A0> 伊娃曼德斯(左)和萊恩葛斯林交往多年未婚,但已育有1女。翻攝每日郵報
## 5 隋棠今出席阿瘦皮鞋活動,力挺全天下辛勞的媽咪,她說,很多現代媽媽都是身兼數職,格外令人心疼。談到今年母親節,她說是她當媽媽後第一次過節,自己為人母後,更能體驗母親的辛勞,今年想要好好幫媽媽和婆婆過節,不過距離母親節還有1個月,目前還沒有具體想法。<U+00A0>前兩天隋棠和老公帶兒子Max開車到台南、墾丁旅行,她透露因為表妹在台南開民宿,順道去體驗了一下,台南美食果然名不虛傳,她跟Max吃很多,母子倆回台北竟然雙雙變胖了,而第一次長途旅行的Max也十分配合,路上不是吃就是睡,7個多月大的他,上車睡覺、直接尿尿,讓她覺得一點也不麻煩。(葉婉如/台北報導)<U+00A0> 隋棠透露前幾天到台南吃喝竟吃胖了。阿瘦皮鞋提供 隋棠帶兒子Max第一次長途旅行,兒子在車上很乖巧。翻攝隋棠臉書
## 6 日本型男伊勢谷友介被爆和名媛模特兒森星半同居,2人同進同出他的住處,他還開車送女方出門工作,報導曝光後,大家才知道原來他和長澤雅美早就切了!<U+00A0>將滿40歲的伊勢谷友介,歷任女友包括廣末涼子、吉川雛乃、木村佳乃等,一字排開羨煞世間男性。據《FRIDAY》周刊,他和28歲的長澤雅美2012年展開交往,男方友人透露,因雅美頻頻催婚,他斷然拒絕,2人大吵一架,已於1年前分手。<U+00A0>他的新歡森星長相甜美,本月22日滿24歲,曾在巴黎生活,今年3月剛從慶應大學畢業,祖母是名設計師森英惠,姊姊森泉也是藝人。去年11月伊勢谷友介上她擔任助理主持的料理節目,交換聯絡方式後來電,迅速進展到半同居,情場浪子和千金小姐的配對備受矚目。(吳惠菁/綜合報導)<U+00A0> 伊勢谷友介(左)和森星打扮休閒一起遛狗。翻攝《FRIDAY》森泉(右)、森星是日本名媛姊妹花。翻攝森星IG
## 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 娛樂
## view_cnt
## 1 1749
## 2 11696
## 3 3329
## 4 4307
## 5 4651
## 6 5141
head(filter(applenews, category == '娛樂' | view_cnt >= 100))
## content
## 1 (更新:新增影片)想要透過刮刮樂彩券一夕致富,但他卻用錯方法!台中市一名黃姓男子覬覦頭獎高達2600萬的「開門見喜」刮刮樂彩券,上月佯裝顧客進入彩券行,趁女店員拿出11張彩券供其挑選時,抓起彩券奪門而出騎車逃逸,警方調閱監視器循線追查,昨日在北區逮捕黃嫌,他坦承搶來的彩券共刮中1萬4千多元,但已經兌獎花用殆盡,警方訊後將全案依詐欺罪嫌移送。<U+00A0>警方調查,黃姓男子﹝27歲﹞上個月頭戴安全帽及口罩,到河南路一家彩券行佯稱購買每張售價2000元的「開門見喜」刮刮樂,並要求挑選彩券號碼,朱姓女店員不疑有他,從櫃檯拿出連號彩券總計11張供其挑選,黃男竟趁朱女不注意之際,抓起彩券奪門而出,並跳上一旁機車逃逸,店家總計損失新臺幣2萬2,000元。<U+00A0>轄區第六分局何安派出所獲報,調閱路口監視器過濾比對,發現嫌犯已預謀將車牌用紅色口罩遮蔽,逃逸時刻意繞行小巷,更3次變裝意圖混淆警方追查,只是看似完美無瑕的犯罪計畫,卻在飆速逃逸時口罩隨風微微揚起,車牌部分英文及數字號碼在鏡頭下仍能辨識,在員警比對將近百支監視鏡頭畫面後,通知孫姓車主到案說明。<U+00A0>孫男到案後表示,案發前已將機車借給黃姓友人使用,但無法提供黃嫌聯絡方式,警方鍥而不捨擴大比對監視畫面,鎖定黃嫌時常出沒北區北平三街一帶,經過日埋伏,昨天逮到狡猾的黃嫌,他供稱因缺錢花用,迫於無奈下才出此下策,所得彩券刮開後總計兌換彩金1萬4,500元,且已全數花費殆盡,警方訊後將全案依詐欺罪嫌移送。(王煌忠/台中報導)<U+00A0>發稿:1304更新:1432<U+00A0> 黃姓男子佯裝購買刮刮樂,趁選號時一把抓走刮刮樂逃逸,女店員當下傻眼不已。翻攝畫面黃嫌逃逸時將車牌以口罩遮住,逃避警方追查。翻攝畫面
## 2 俄羅斯夫妻Murad和Nataly,因牽手背景照「Follow Me To」聞名,昨天他們受丹麥品牌PANDORA之邀以A Journey of Love為主題,在信義誠品舉辦攝影展,其中多套美麗的禮服皆出於藝人賈永婕經營的C.H Wedding。<U+00A0>其中包括代表台灣廟宇文化的屏東東龍宮、信仰勝地佛光山及搭上阿里山小火車的3個地點,Nataly都身穿C.H Wedding的手工禮服,拍攝出的絕美照片,令人屏息,原來台灣這麼美。(時尚中心/綜合報導)<U+00A0>想知道更多,一定要看……牽手夫妻戴PANDORA 拍出驚豔台灣美<U+00A0> 牽手夫妻每張照片皆花費不少心力。翻攝C.H Wedding官網Nataly身穿C.H Wedding的手工禮服拍攝。翻攝C.H Wedding官網俄羅斯夫妻Murad和Nataly昨出席攝影展。朱世閎攝
## 3 連結嘉義縣民雄與竹崎交流道的嘉166線道民雄鄉大崎村段,近來出現可愛的Q版千里眼造型看板寫著「人在做 天在看」、「眾神有咧看」,原來是該路段經常有沒有公德心的駕駛隨亂丟垃圾,讓原本賞心悅目的安全島花台堆滿垃圾,大崎村民相當氣憤,手寫看板勸導無效,於是設計千里眼看板高掛電線桿,拜託不要再亂垃圾!<U+00A0>嘉166線可連接中山高速公路民雄交流道與福爾摩沙國道三號竹崎交流道,車輛絡繹不絕也帶來不少垃圾,大崎村民幾乎是每天看見安全島沿線保麗龍杯、便當盒、飲料罐、檳榔渣等垃圾遍布,撿了隔天又是相同景象,既氣憤又無奈!<U+00A0>村民表示,過去張貼手寫看板,希望司機們考量地方原本整潔美觀,路過不要破壞環境,一起維護家園整潔,但是軟性訴求看起來沒有改善,清潔志工每月都在車水馬龍的馬路周圍一再清出垃圾,真的不堪其擾。<U+00A0>村民們委託設計師以Q板千里眼神像加上警示標語「眾神有咧看」,期盼遏阻隨手丟垃圾歪風。沿線40面看板共花費萬餘元,可能是神明庇佑吧,懸掛以來垃圾量已明顯減少。(李宗祐/嘉義報導) 嘉166線來往車輛頻繁。李宗祐攝掛在分隔島上的Q版神明呼籲不要亂丟垃圾。李宗祐攝
## 4 台中市政府二月下旬抽驗麵龜,發現2家業者麵龜製品檢出非法色素「鹽基性桃紅精(RhodamineB)」(俗稱工業色素),為非食品級添加物,衛生局已要求業者將不合格產品及違規色素下架銷毀,並移送台中地檢署偵辦。<U+00A0>衛生局日前會同台中地檢署、保七總隊第三大隊第二中隊及食藥署中區管理中心人員,前往沙鹿區天一堂食品行及大雅區晶晶食品行進行稽查,當場查獲無標示不明的紅色粉末及已泡製紅色液體,這2家業者坦承該不明泡製紅色液體、紅色粉末確實添加於麵龜製程,讓麵龜著色、賣相更佳;衛生局已要求業者將不合格產品及違規色素下架銷毀。<U+00A0>衛生局表示,這次在沙鹿區天一堂食品行現場查獲無標示的「大紅色素粉末245公克」及「桃紅色素粉末20公克、液體695公克」,據楊姓負責人說明,該不明色素是今年初剛買入使用,但忘記購入來源,僅在年節有製作麵龜或壽桃染色用,這批檢出非法色素的麵龜大約產製1,000顆,已全數賣給市場散客無庫存。<U+00A0>另外,大雅區晶晶食品行部分,衛生局現場查獲無標示散裝「紅色粉末67.5公克」及「紅色泡製液體156.25公克」,據白姓負責人表示,大約1年多前開始使用該無標示紅色粉末製做麵龜,已忘記向誰購買,這批檢出非法色素的麵龜約生產120顆,1至2天賣完。<U+00A0>兩家老闆均表示因麵龜是節慶產品,非天天生產,並自述不知色素為非法禁用,衛生局已當場將違規無標示不明紅色粉末、泡製紅色液體等全數抽驗回局後續檢驗,並依規移送地檢署偵查。<U+00A0>「鹽基性桃紅精(RhodamineB)」是工業染色技術所用的工業色素,人體接觸過量會造成肺部、喉嚨、鼻子與胃腸道黏膜的刺激性與不適,且會排出紅色尿;「鹽基性桃紅精」容易被不當使用於糖果、蛋糕、壽桃、紅龜粿、湯圓及辣椒粉等食物染色。民眾可選擇信譽良好商家購買,避免挑選過於顏色鮮豔的食品。(黃任膺/台中報導)<U+00A0><U+00A0> 衛生局查出業者在麵龜摻非食用色素。衛生局提供
## 5 新北市一名33歲男子和另名女子在新莊區同居,卻在2015年6月一大早,及7月中深夜,趁同居女子的10歲女兒熟睡時猥褻其下體、胸部,女童驚醒才罷手。新北地院審酌男子認罪並達成和解,還寫道歉信並搬走,今依故意對兒童犯乘機猥褻罪輕判1年2月徒刑,緩刑3年,另須保護管束;仍可上訴。<U+00A0>2015年,男子跟女子同居新莊,卻在6月某天6時許,撞見同居女子的10歲女兒正熟睡,手伸入其內褲猥褻其下體,女童驚醒才停手。事隔1個月後,男子又趁女童深夜時熟睡,撫摸其胸部,女童再次驚醒,才未再猥褻。<U+00A0>新北地院認為,男子身為女子的同居人,等同父執輩,卻未照護該年幼女童,反為了滿足個人性慾,罔顧人倫而乘機猥褻,但考量男子沒前科,犯後始終坦承犯行,已達成和解,寫下道歉信,搬離新莊住處,女童及同居人也表明不願追究,雖判刑1年2月,但給予緩刑也須保護管束。(孫友廉/新北報導)<U+00A0>【更多司法新聞,請看《蘋果陪審團》粉絲團】
## 6 岡山區的星巴克咖啡真的要來了!明天正式開幕營運,成為北高雄第1家門市,星巴克從去年初開始興建以後,就成為大岡山地區各網路群組的熱門討論話題,網友們引頸期盼了1年多終於成真,不少人已經準備前往朝聖,門市在明天開幕的前100名打卡上傳臉書的消費者,可以免費獲得咖啡1杯。<U+00A0>岡山周邊11個區大約有40萬的人口,消費力不容小覷,近年來已有些走較高價路線的餐廳,但卻沒有大型、知名的連鎖咖啡店進駐,因此當星巴克準備開店的消息傳出,包括「我是岡山人」、「我是橋頭人」、「我是彌陀人」等地方網路論壇都熱烈討論,但卻傳了1年多,讓不少民眾望穿秋水。<U+00A0>岡山區長林清益表示,很高興看到星巴克的進駐,讓大岡山地區有更多元的餐飲選擇。<U+00A0>星巴克岡山門市位於新省道上,緊鄰岡山火車站,是最熱鬧的地段,內部約有70多個座位,寬敞明亮,它也是星巴克在高雄市第1家設有得來速車道的門市,最近幾天員工們正進行最後測試演練。<U+00A0>岡山星巴克將在明天上午10時開始營運,為慶祝開幕,將有滿300元送筆或紙膠帶、滿600元送萬用包和前100名打卡送咖啡等活動。(陳宏瑞/高雄報導)<U+00A0> 星巴克咖啡岡山門市的外觀。陳宏瑞攝岡山星巴克的戶外區。陳宏瑞攝岡山店是高雄地區第一家有得來速車道的星巴克咖啡門市。陳宏瑞攝岡山星巴克內部約有70多個座位,寬敞舒適。陳宏瑞攝岡山星巴克的員工已經準備好迎接開幕。陳宏瑞攝
## title dt
## 1 【更新】搶2.2萬彩券刮中1.4萬 沒發財還得入獄 2016-04-15 14:32:00
## 2 全球最閃牽手夫妻 絕美禮服出自台灣… 2016-04-15 14:28:00
## 3 垃圾掉滿地 村民請神明幫忙 2016-04-15 14:24:00
## 4 麵龜摻非工業色素 千顆不良品早下肚 2016-04-15 14:23:00
## 5 同居人女兒熟睡 淫男伸狼爪 2016-04-15 14:22:00
## 6 岡山星巴克明開張 前100人咖啡免費 2016-04-15 14:21:00
## category view_cnt
## 1 社會 1754
## 2 時尚 311
## 3 生活 314
## 4 生活 308
## 5 社會 1076
## 6 生活 775
filter(applenews, category %in% c("娛樂 ", "社會 "))
## [1] content title dt category view_cnt
## <0 rows> (or 0-length row.names)
head(applenews[,c('category', 'view_cnt')])
## category view_cnt
## 1 社會 1754
## 2 國際 0
## 3 地產 0
## 4 國際 0
## 5 時尚 311
## 6 財經 24
head(select(applenews, category, view_cnt))
## category view_cnt
## 1 社會 1754
## 2 國際 0
## 3 地產 0
## 4 國際 0
## 5 時尚 311
## 6 財經 24
head(applenews[applenews$category =='社會',c('category', 'view_cnt')])
## category view_cnt
## 1 社會 1754
## 11 社會 1076
## 19 社會 11886
## 26 社會 4582
## 34 社會 1154
## 35 社會 4322
# select category, view_cnt from applenews where category == '社會'
applenews %>%
select(category, view_cnt) %>%
filter(category == '社會') %>%
head()
## category view_cnt
## 1 社會 1754
## 2 社會 1076
## 3 社會 11886
## 4 社會 4582
## 5 社會 1154
## 6 社會 4322
applenews %>%
select(category, view_cnt) %>%
filter(category == '社會') %>%
arrange(view_cnt) %>%
head()
## category view_cnt
## 1 社會 918
## 2 社會 1011
## 3 社會 1076
## 4 社會 1147
## 5 社會 1154
## 6 社會 1305
applenews %>%
select(category, view_cnt) %>%
filter(category == '社會') %>%
arrange(view_cnt) %>%
head()
## category view_cnt
## 1 社會 918
## 2 社會 1011
## 3 社會 1076
## 4 社會 1147
## 5 社會 1154
## 6 社會 1305
applenews %>%
select(title, category, view_cnt) %>%
filter(category == '社會') %>%
arrange(desc(view_cnt)) %>%
head()
## title category view_cnt
## 1 【更新】正晶揭露新詐騙案 7百萬存款不翼而飛 社會 241842
## 2 貴婦人妻太閒了 她只好和一些網友嘿咻 社會 228203
## 3 【告別小燈泡】爸爸首發聲 「仇恨滋長邪惡」 社會 217096
## 4 長得不像? 男驗DNA才知2女兒都非親骨肉 社會 214796
## 5 殺警再爆內幕 出牆妻再嫁黑道鄉長目的曝光 社會 172024
## 6 性愛偷拍後 璩美鳳這15年來這樣過 社會 171408
freqsum <- applenews %>%
select(view_cnt) %>%
sum()
freqsum
## [1] 21574014
applenews <- applenews %>%
select(title, category,view_cnt) %>%
mutate(portion= view_cnt/freqsum)
applenews %>% group_by(category) %>% summarise(view_sum = sum(view_cnt))
## # A tibble: 16 x 2
## category view_sum
## <chr> <dbl>
## 1 3C 146308
## 2 正妹 672949
## 3 生活 3417804
## 4 地產 220812
## 5 社會 5721750
## 6 政治 1701980
## 7 娛樂 3571005
## 8 時尚 260499
## 9 財經 618243
## 10 動物 123287
## 11 國際 2485621
## 12 "國際\",\"LA\",\"SF\",\"NY\",\"US" 43627
## 13 "國際\",\"SF\",\"US" 11163
## 14 搜奇 668307
## 15 論壇 312592
## 16 體育 1598067
applenews %>%
group_by(category) %>%
summarise_each(funs(min(., na.rm=TRUE), max(., na.rm=TRUE)),
matches("view_cnt"))
## `summarise_each()` is deprecated.
## Use `summarise_all()`, `summarise_at()` or `summarise_if()` instead.
## To map `funs` over a selection of variables, use `summarise_at()`
## # A tibble: 16 x 3
## category min max
## <chr> <dbl> <dbl>
## 1 3C 267 20509
## 2 正妹 7999 344733
## 3 生活 20 132880
## 4 地產 0 80691
## 5 社會 918 241842
## 6 政治 221 83059
## 7 娛樂 1631 299235
## 8 時尚 311 67086
## 9 財經 24 54886
## 10 動物 1211 11753
## 11 國際 0 150825
## 12 "國際\",\"LA\",\"SF\",\"NY\",\"US" 1034 12893
## 13 "國際\",\"SF\",\"US" 2875 4171
## 14 搜奇 199 83036
## 15 論壇 275 68208
## 16 體育 523 162907
applenews %>%
select(category) %>%
summarise_each(funs(n_distinct(category)))
## `summarise_each()` is deprecated.
## Use `summarise_all()`, `summarise_at()` or `summarise_if()` instead.
## To map `funs` over all variables, use `summarise_all()`
## category
## 1 16
cat_stat = applenews %>%
group_by(category) %>%
summarise(view_sum = mean(view_cnt))
#cat_stat
cat_stat$category = as.factor(cat_stat$category)
barplot(cat_stat$view_sum, names.arg=cat_stat$category, col=cat_stat$category)

pie(cat_stat$view_sum, labels = cat_stat$category)

Line Chart
x <- 1:6
y <- 1:6
types <- c("p","l","o","b","c","s", "h", "n")
par(mfrow=c(2,4))
for (i in types){
plot(x,y, type = i, main = i)
}

par(mfrow=c(2,4))
for (i in types){
plot(x,y, type = 'n', main = i)
lines(x,y, type = i)
}

months <- c(1,2,3,4,5)
taipei <- c(92.5,132.6,168.8,159.1,218.7)
tainan <- c(21.2, 30.6, 37.3, 84.6, 184.3)
plot(months, taipei, type = 'o', col='blue', ylim=c(0,250), xlim= c(1,6), main = 'Rain falls in Taipei v.s. Tainan', ylab = 'rainfalls')
lines(months, tainan, type = 'o', col='red', lty= 2, pch = 23)
legend('bottomright', c('taipei', 'tainan'), lwd = 2, col= c('blue', 'red'))
text(5.5, 220, label = 'taipei', col= 'blue')
text(5.5, 200, label = 'tainan', col= 'red')

Bar Chart
house <- read.csv('https://raw.githubusercontent.com/ywchiu/rtibame/master/data/house-prices.csv')
bedroomsTable <- table(house$Bedrooms)
bp <- barplot(bedroomsTable, names.arg = c('2 Units', '3 Units', '4 Units', '5 Units'), col = '#E80C7A', main = 'Bedrooms Number', xlab = 'house units', ylab = 'count', ylim= c(0,100))
text(bp, bedroomsTable, bedroomsTable,cex=1,pos=3, col = '#02173E')

barplot(c(80,82,84,88), ylim=c(0,100),col=c('red', 'blue', 'green', 'orange') )

Histogram
load("C:/Users/USER/Downloads/cdc.Rdata")
hist(cdc$weight,breaks= 500)

barplot(table(cdc$weight))

c(1,2, 5,6,7, 9,10)
## [1] 1 2 5 6 7 9 10
head(sort(table(cdc$weight), decreasing = TRUE))
##
## 160 150 180 170 200 140
## 992 970 933 922 805 794
table(cdc$weight %% 10 )
##
## 0 1 2 3 4 5 6 7 8 9
## 9421 207 919 545 525 5865 481 543 1159 335
par(mfrow=c(2,1))
hist(cdc$weight,breaks=50,xlim=c(70,380))
barplot(table(cdc$weight),xlab="weight",ylab="Frequency")

par(mfrow=c(1,1))
Pie Chart
bedroomsTable <- sort(bedroomsTable, decreasing = TRUE)
labels <- paste(names(bedroomsTable),'Units',':', round(bedroomsTable/sum(bedroomsTable),4) * 100,'%' )
pie(bedroomsTable, labels = labels, col = rainbow(length(bedroomsTable)), main = 'Pie Chart of Bedroom', init.angle = 90, clockwise = TRUE)

Scatter Chart
fit <- lm(wtdesire ~ weight, data = cdc)
fit
##
## Call:
## lm(formula = wtdesire ~ weight, data = cdc)
##
## Coefficients:
## (Intercept) weight
## 46.664 0.639
plot(cdc$weight, cdc$wtdesire)
abline(fit, col = 'red')

data(iris)
head(iris)
## 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
plot(Petal.Length ~ Petal.Width, col = Species, data = iris)

setosa <- iris[iris$Species == 'setosa', ]
versicolor <- iris[iris$Species == 'versicolor', ]
virginica <- iris[iris$Species == 'virginica', ]
plot(Petal.Length ~ Petal.Width, data = versicolor, col= 'red', xlim = c(1,3), ylim = c(0,8))
points(Petal.Length ~ Petal.Width, data = virginica, col= 'blue')

Mosaic Plot
smokers_gender <- table(cdc$gender, cdc$smoke100)
smokers_gender
##
## 0 1
## m 4547 5022
## f 6012 4419
colnames(smokers_gender) <- c('no', 'yes')
rownames(smokers_gender) <- c('male', 'female')
mosaicplot(smokers_gender,col= rainbow(2))

Box Chart
hist(cdc$height)

boxplot(cdc$height)

salary <- c(60,70,75,80,85,90,110,100,120,9999)
mean(salary)
## [1] 1078.9
sort(salary)
## [1] 60 70 75 80 85 90 100 110 120 9999
median(salary)
## [1] 87.5
boxplot(salary)

boxplot(salary[salary < 300])

boxplot(cdc$height ~ cdc$gender)

salary2 <- c(60,70,75,80,85,90,110,100,120,250)
boxplot(salary2)

median(salary2)
## [1] 87.5
quantile(salary2, 0.25)
## 25%
## 76.25
quantile(salary2, 0.75)
## 75%
## 107.5
max(salary2[salary2 < median(salary2) + 1.5 * IQR(salary2)])
## [1] 120
min(salary2[salary2 > median(salary2) - 1.5 * IQR(salary2)])
## [1] 60
Legend
plot(months, taipei, type = 'o', col='blue', ylim=c(0,250), xlim= c(1,6), main = 'Rain falls in Taipei v.s. Tainan', ylab = 'rainfalls')
lines(months, tainan, type = 'o', col='red', lty= 2, pch = 23)
#legend(x = 1, y = 200, c('taipei', 'tainan'), lwd = 2, col= c('blue', 'red'))
legend('bottomright', c('taipei', 'tainan'), lwd = 2, col= c('blue', 'red'), title = 'rainfall')
text(5.5, 220, label = 'taipei', col= 'blue')
text(5.5, 200, label = 'tainan', col= 'red')

bedroomsTable <- sort(bedroomsTable, decreasing = TRUE)
labels <- paste(names(bedroomsTable),'Units',':', round(bedroomsTable/sum(bedroomsTable),4) * 100,'%' )
pie(bedroomsTable, labels = labels, col = rainbow(length(bedroomsTable)), main = 'Pie Chart of Bedroom', init.angle = 90, clockwise = TRUE)
legend('topright', labels, fill = rainbow((length(bedroomsTable))), title = 'units', cex = 0.8)

par
showLayout <- function(n){
for(i in 1:n){
plot(1,type="n",xaxt="n",yaxt="n",xlab="",ylab="")
text(1,1, labels=i, cex=10)
}
}
par(mar = c(1,1,1,1), mfrow=c(3,2))
showLayout(6)
par(mar = c(3,3,3,3), mfrow=c(3,2))
showLayout(6)
par(mar = c(3,3,3,3), mfcol=c(3,2))
showLayout(6)

Save Fig
jpeg("pieplot.jpg")
bedroomsTable <- sort(bedroomsTable, decreasing = TRUE)
labels <- paste(names(bedroomsTable),'Units',':', round(bedroomsTable/sum(bedroomsTable),4) * 100,'%' )
pie(bedroomsTable, labels = labels, col = rainbow(length(bedroomsTable)), main = 'Pie Chart of Bedroom', init.angle = 90, clockwise = TRUE)
legend('topright', labels, fill = rainbow((length(bedroomsTable))), title = 'units', cex = 0.8)
dev.off()
## png
## 2