讀取資料

load("udn.RData")

抽取記者,時間, 報導來源

library(magrittr)
metadata <- udn$meta %>% 
     gsub('(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}) (.*?) (.*) function(.*)','\\1|\\2|\\3', x=.) %>% strsplit('\\|')

metaall <- do.call('rbind', metadata)
colnames(metaall) <- c('datetime', 'source', 'reporter')
udn$meta <- NULL
udn <- cbind(udn, metaall)

清理文章資料

udn$article <- as.character(udn$article)
contentclean <- function(news){
  news %>%  strsplit("function .*? \\{.*?\\} ") %>% .[[1]] %>% .[2] %>% strsplit('facebook twitter pinterest') %>% unlist() %>% trimws() %>% paste(collapse=' ')
}
udn$article <- sapply(udn$article, contentclean)

轉換時間資料

udn$datetime <- strptime(udn$datetime, '%Y-%m-%d %H:%M')

資料儲存

library(RJDBC)
## Loading required package: DBI
## Loading required package: rJava
jar.loc <- 'C:\\Program Files (x86)\\MySQL\\Connector.J 5.1\\mysql-connector-java-5.1.38-bin.jar'
drv <- JDBC("com.mysql.jdbc.Driver",
           jar.loc,
           identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://localhost/udn_news", "root", "test")

建立新聞資料表

CREATE TABLE `udn_main` (
  `title` varchar(1000) DEFAULT NULL,
  `article` text,
  `datetime` date,
  `source` varchar(100) DEFAULT NULL,
  `reporter` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

使用Append 新增資料

#寫入資料
dbWriteTable(conn, 'udn_main', udn, append=TRUE,row.names=FALSE,overwrite=FALSE)
## [1] TRUE

關閉連線

dbDisconnect(conn)
## [1] TRUE