1、使用剪贴板,而后使用read.table函数;git
首先选择Excel中的数据源,而后复制; github
在Rstudio中输入以下脚本,回车便可; sql
read.table("clipboard", header = TRUE)编辑器
注:header = TRUE,表示首行为标题行,若为FALSE则标题行也算在正文第一行,结果以下; 函数
2、将Excel另存为csv文件,而后使用read.csv函数;post
打开Excel数据源,另存为example.csv文件;路径为【C:\Users\Administrator\Desktop\example】编码
而后在Rstudio中输入以下代码,回车便可:spa
read.csv("C:/Users/Administrator/Desktop/example/example.csv", header = TRUE)操作系统
这里的header参数与使用剪贴板中的header参数用法一致,在此不在赘述;postgresql
注:在R中“\”是一个转义字符,故须要将路径中的“\”字符,使用“/”替代,或使用"\\"替代;
3、将Excel另存为txt文本文件,而后使用read.table函数;
打开Excel数据源,另存为example.txt文件;路径为【C:\Users\Administrator\Desktop\example】
而后在Rstudio中输入以下代码,回车便可;
read.table("C:/Users/Administrator/Desktop/example/example.txt", header = TRUE)
4、使用RODBC包(xls格式Excel文件)
以前使用过RODBC包链接过Postgresql,回复【postgresql】可查看相关文章;这是里一样能够 使用RODBC中的odbcConnectExcel来建立与Excel的链接,获取Excel中的数据;
> install.packages("RODBC")
> library(RODBC)
> conn <- odbcConnectExcel("C:/Users/Administrator/Desktop/example/example.xls")
> sqlTables(conn)
> sqlFetch(conn, "example")
> sqlQuery(conn, "select * from [example$]")
> odbcClose(conn)
其中example.xls中一个Excel文件(2003版本格式),example是工做薄中要读取数据的工做表的名称,conn是一个由odbcConnectExcel()返回的RODBC链接对象,mydataframe是返回的数据框。注:RODBC也可用于从Access导入数据,具体能够查看help(RODBC)帮助;
注:xlsx格式的Excel文件(200七、2010版)导入R语言会出错,可用xlsx包来读取这种格式的电子表格,脚本以下:
> install.packages("xlsx")
> library(xlsx)
> workbook <- "C:/Users/Administrator/Desktop/example/example.xlsx"
> mydataframe <- real.xlsx(workbook, 1)
> mydataframe
今天介绍了几种导入Excel中的数据至R语言中的方法,包括利用剪贴板、经过将Excel导入csv格式或txt格式的文件,以及利用RODBC包(或xlsx包)的方法;鉴于xls版本较为老旧,建议采起前三种方法导入Excel数据;
read.talbe以及read.csv及RODBC中相关函数的参数都不少,文章中只用了几个常见的参数,其他参数均采起了默认的设置,可利用?read.talbe或help(read.table)等语法来查询相关函数的具体帮助说明,例如使用?read.talbe语法查询帮助;
read.table的函数参数很是多,同时也会列出相关的函数,但最经常使用的也就几个,以下:
read.table(file, header = FALSE, sep = "", quote = "\"'",dec = ".", skip = 0,strip.white = FALSE, blank.lines.skip = TRUE,comment.char = "#")
file,表示要读取的文件:file能够是①绝对路径或者相对路径,可是必定要注意,在R中“\”是转义符,故路径须要写成“/”或者“\\”; ②使用剪贴板;③使用file.choose(),弹出对话框,让你选择文件的位置。
header,表示数据文件中第一行是否是标题。默认为F(FALSE),认为数据文件中无标题;
sep,指定分隔符,默认是空格。quote是引号,默认是双引号。dec是小数点的表示,默认就是一个点。skip是肯定是否跳过某些行。strip.white肯定是否消除空白字符。blank.lines.skip肯定是否要跳过空白行。comment.char指定用于表示注释的引导符号。
大 数 据 人
报道DT时代应用资讯及动态,爆料剖析行业热点新闻
Hadley Wickham 和 RStudio团队写了一些新的R包,这些包对于每一个须要在R中读入数据的人来讲都是很是有用的。readr包提供了一些在R中读入文本数据的函数。readxl包提供了一些在R中读入Excel电子表格数据的函数。它们的读取速度远远超过你目前正在用的一些函数。
readr
包提供了若干函数在R中读取数据。咱们一般会用R中的read.table
家族函数来完成咱们的数据读入任务。这里,readr
包提供了许多替代函数。它们增长了额外的一些功能而且速度快不少。
首先,read_table
几乎代替了read.table
。下面经过读取一个包含400万行的数据来比较它们的区别。点击这里下载该数据。
注1:在演示以前简单说下我电脑的配置:win7,64位操做系统,8G内存,CPU A6双核。电脑配置不行,原文给出的实验时间甩了我好几条街。但无论怎样,在现有的条件下效率确实提升了不少。原文用时见末尾连接。
注2:若是读取中文数据出现乱码,在编辑器设置下字符编码为"UTF-8"
system.time(read_table("C:\\Users\\a\\Desktop\\biggerfile.txt", col_names=c("DAY","MONTH","YEAR","TEMP"))) system.time(read.table("C:\\Users\\a\\Desktop\\biggerfile.txt", col.names=c("DAY","MONTH","YEAR","TEMP")))
这些命令看上去很是类似,可是read.table
花的时间是50.62秒,而read_table
完成相同的任务只花了2.76秒。这是由于read_table
把数据当作是固定格式的文件,而且使用C++快速处理数据。
R中的基础包utils
也有读取固定宽度数据的函数,下面的示例就能体现出readr
的亮点:
system.time(read_fwf("C:\\Users\\a\\Desktop\\biggerfile.txt", fwf_widths(c(3,15,16,12), col_names=c("DAY","MONTH","YEAR","TEMP")))) system.time(read.fwf("C:\\Users\\a\\Desktop\\biggerfile.txt", c(3,15,16,12), col.ames=c("DAY","MONTH","YEAR","TEMP")))
readr
包的read_fwf
函数用时3.97秒,而标准的read.fwf
函数耗时1372秒。
readr包中的其它函数包括:read_csv
读取逗号分隔的数据(欧洲用的是read_csv2
函数),read_tsv
读取制表符分隔数据,read_lines
函数从文件中逐行读取数据(很是适合复杂的后期处理)。它还能够读取多种格式的日期时间列,智能的将文本数据读取为字符串(再也不须要设置strings.as.factors=FALSE
)。
对于Excel格式的数据,这里有readxl包。这个包提供的函数能够读取.xls和.xlsx格式的Excel工做表。虽然这里没有演示read_execl
函数的使用,可是它跟readr
中的函数同样都是基于C++库的,所以读取速度应该也很快。最重要的是,它没有任何的外部依赖,所以你能够在任意平台上用它来读取数据—不要求安装了Excel。
readr
包已发布在CRAN上,readxl
能够从github安装。
github地址:https://github.com/hadley/readxl