数据读取
单个文件数据读取
读取txt格式数据
df <- read.table("xu.txt",header= TRUE)
读取xlsx的文件
library(xlsx)
df <- read.xlsx("xu.xlsx",1)
读取网页表格
补充
windows和Linux的文件路径
(1)windows的文件路径格式“E:Pythonworkplacecodes”单反斜杠的方式,但是在很多编程语言中会不认识“”字符,可能会把它识别成转译字符,通常我们在windows引用路径的时候需要用“\”来表示“”,windows的文件路径的正确写法在程序中最好是“E:\Python\workplace\codes”。
(2)linux的文件路径格式为“python/workplace/codes”这种单斜杠的方式,这种路径很多时候是可以适用在windows下的,但是会有一定的弊端,当路径中有空格的时候这种路径方式就不适用与windows
如果是想抓去网页上的某个表格,那么可以使用XML包中的readHTMLTable()函数。例如我们想获得google统计的访问最多的1000名网站数据,则可以象下面这样做。关于这个函数可以参考这篇博文。
url <- 'http://www.google.com/adplanner/static/top1000/'
data <- readHTMLTable(url)
names(data)
head(data[[2]])
批量读取本地文件
在批量读取文档时一般先将其存放在某一个目录下。先用dir()函数获取目录中的文件名,然后用paste()将路径合成,最后用循环或向量化方法处理文档。
doc.names <- dir("path")
doc.path <- sapply(doc.names,function(names) paste(path,names,sep='/'))
doc <- sapply(doc.path, function(doc) readLines(doc))
将一个文件夹下的多个相同的文件合并起来
library(dplyr)
nameList <- list.files("GSE48213_RAW/") # list.files用于列出文件夹下所包含的文件名
matrix <- read.table(paste0("GSE48213_RAW/",nameList[1]),header = T)
for (i in 2:length(nameList)){
matrix <- inner_join(matrix,
read.table(paste0("GSE48213_RAW/",nameList[i]),header = T),
by="EnsEMBL_Gene_ID")
}
save(matrix,file = "56_cell_expression.Rda")
数据库连接取数
library(RMySQL)
connectMySQL<-function(mysql,dbname,user,password,host){
drv<-dbDriver(mysql)
return(dbConnect(drv,dbname,user,password,host))
}
connect <- function()
{
con <- connectMySQL(mysql = "MySQL", dbname = "test", user = "***", password = "A", host = "10.***")
return(con)
}
con=connect()
news=dbGetQuery(con,"select news_content from news_cms where substr(news_time,1,10)='2016-05-09';")
输出数据
write.table(AAPL, file = "E:/R脚本/data.csv", append =FALSE)
与数据库相连输出数据
con<-connect()
dbWriteTable(con, "cookie_adlog_2", ad_msg,row.names =FALSE, overwrite = TRUE)
overwrite: 一个逻辑值,是否覆盖表中的数据,默认为FALSE
append: 一个逻辑值,是否是追加数据到已存在的表,默认为FALSE
保存为逗号分割文本
write.csv(d, file = "c:/data/foo.csv", row.names = F, quote = F)
保存为R格式文件
save(d, file = "c:/data/foo.Rdata")
存到本地
save(I,file="/opt/mllib_data/futureKPI/futureUserIndex.dat")
通过R在mysql建表
data_delete<-dbGetQuery(conn,str_c("CREATE TABLE ss_usr_trd_anlytcs
(
dy varchar(8) comment '时间',
eqt_id varchar(500) comment '用户名',
rgstr_date varchar(50) comment '注册时间',
fst_trd_date varchar(50) comment '首次成交时间',
lst_trd_date varchar(50) comment '最近1次成交时间',
lst_trd_amt double comment '最近1次成交金额',
trd_sccss_cnt_lst_mnth int comment '最近1个月累计成交次数',
trd_amt_lst_mnth double comment '最近1个月累计成交金额',
trd_sccss_cnt_thr_mnth int comment '最近3个月累计成交次数',
trd_amt_thr_mnth double comment '最近3个月累计成交金额',
accmltd_trd_sccss_cnt int comment '累计成交次数',
accmltd_trd_amt double comment '累计成交金额',
trd_cnt_lst_mnth int comment '最近1个月累计交易次数',
ss_usr_type text comment '用户类型',
ss_strtg_prdct text comment '购买的及购买次数和总金额数',
ss_strtg_trnd_wght text comment '按次数、金额、时间计算产品类别及其权重',
strtg_type text comment '类型及其次数',
ss_prdct_type text comment '产品类别及其购买次数 ',
ss_strtgs_lvl text comment '等级及次数'
)
ENGINE=MyISAM DEFAULT CHARSET=utf8", collapse = ""))