R语言读取Excel的神器——openxlsx

本文介绍使用R语言从Excel中读取数据的三种方法,包括转换为CSV格式后读取、利用RODBC包连接Excel读取及使用openxlsx包直接读取.xlsx文件。其中,openxlsx因其简单高效且bug少而被推荐。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为非程序猿的各位同志们,可能最擅长的数据整理软件或者统计软件就是——嗯,没有错,它就是集万千宠爱于一身的E~~~~X~~~~O。
这里写图片描述
咳咳咳,好了。隆重推出我们的主角——Excel
这里写图片描述
事实上,Excel是个super强大的软件。基本上用它已经能完成大量的统计分析了。
For example
各类数理统计
这里写图片描述

线性规划(LINGO表示欲哭无泪,你丫的抢我饭碗)。
这里写图片描述
当然,很久很久之前有这门本神书:
陈彦光. 基于Excel的地理数据分析[M]. 科学出版社, 2010.
这里写图片描述
当然,作为新时代的研究生,我们怎么能仅用Excel来完成一切的科研任务呢?用老师的话说,你们用Excel做的图,人家审稿都嫌low。这个时候R就登场了。
关于R的简介我就不提了。欢迎各种度娘,扯了这么久的淡。终于要进入正题了。
今天讲的是R语言的第一步,读数据——读Excel的数据。
以下有三种方法:
1.将Excel转存为csv格式文件,读csv文件。

a<-read.csv("exercise1.csv",header = T)

2.用RODBC包读取Excel。

ab<-odbcConnectExcel2007("exercise1.xls")#连接excel,32位系统使用odbcConnectExcel函数
sqlTables(ab)

这里写图片描述
根据需求读取对应的sheet1

a<-sqlFetch(ab,"Sheet1$")
odbcClose(ab)#关闭句柄,此句是必须。

3.用openxlsx包读取Excel

 a<-read.xlsx("exercise1.xlsx",sheet=1)#文件名+sheet的序号,简单粗暴

综合来看,openxlsx的方法简单粗暴,而且经多名骨灰级玩家证明,罕有bug出现。乃R语言和Excel读取的绝对神器。不过笔者也发现,openxlsx包仅适用于.xlsx格式文件。前期的xls格式文件可能还需要前两种方法来读取。除了以上三种方法,还有类似的包如xlsx、readxl。此处依旧强推神器openxlsx。首先,.xlsx文件存储行数大大提升,从65536行数据提升到了104万条数据。其次,它十分便捷,函数所需参数较少。当然最后的最后,它可能需要的R的版本比较的新。下一篇的预告:如何通过一行代码升级R。
最后贴出全文的代码。

#设置工作路径
setwd("F:/R/applicationstatics")

#第一种方法:读取csv
a<-read.csv("exercise1.csv",header = T)

#第二种方法:RODBC包
#安装载入RODBC包,如果已安装,请跳过第一句语句
install.packages(RODBC)
library(RODBC)

ab<-odbcConnectExcel2007("exercise1.xls")#连接excel,32位系统使用odbcConnectExcel函数
sqlTables(ab)
a<-sqlFetch(ab,"Sheet1$")
odbcClose(ab)#关闭句柄,此句是必须。

#第三种方法:openxlsx
install.packages(openxlsx)
library(openxlsx)
a<-read.xlsx("exercise1.xlsx",sheet=1)#文件名+sheet的序号,简单粗暴

当然文末小福利:《基于Excel的地理数据分析》的电子版。需要的童鞋可以评论并留下邮箱。

### R语言读取Excel和CSV文件的方法 #### 使用`read.csv()`函数读取CSV文件 R语言提供了内置的`read.csv()`函数来方便地读取逗号分隔的CSV文件。该函数适用于大多数标准的CSV文件格式[^1]。 ```r data <- read.csv("路径/文件名.csv", header = TRUE, sep = ",") ``` 上述代码中,`header = TRUE`表示第一行被识别为列名,而`sep = ","`指定了字段之间的分隔符为逗号。 为了验证加载的数据是否正确,可以通过以下命令检查数据结构: ```r print(is.data.frame(data)) # 检查对象是否为数据框 print(ncol(data)) # 显示列数 print(nrow(data)) # 显示行数 ``` 这些功能可以帮助快速确认数据是否成功导入并查看其基本属性[^2]。 #### 利用`read.table()`通用函数读取其他类型的文本文件 除了专门针对CSV设计的`read.csv()`外,更灵活的是使用`read.table()`函数。此函数允许自定义更多选项以适应不同格式需求[^4]。 ```r setwd("D:/R程序/RProjects/Code") # 设定工作目录 df <- read.table("datas/1月.csv", sep = ",", header = TRUE) print(head(df)) ``` 这里设置了工作环境到特定位置,并通过`read.table()`载入了一个名为“1月.csv”的文档。值得注意的是,虽然它能完成相似的任务,但由于预设值的不同,在实际应用时可能需要调整一些参数才能达到理想效果。 #### 处理Excel文件的方式 当面对Excel (.xls 或 .xlsx) 文件而非纯文本形式的CSV时,则需借助额外包如`openxlsx`或者`readxl`来进行转换操作[^5]。 安装必要库之后,可执行如下脚本: ```r install.packages("readxl") # 安装readxl包 (仅首次运行一次即可) library(readxl) # 加载readxl库 excel_data <- read_excel("example.xlsx", sheet = "Sheet1") # 查看部分记录 print(head(excel_data)) ``` 这段示例展示了如何利用第三方工具简化复杂任务的过程——即无需先将Excel转存成中间状态(比如CSV),而是直接解析原始二进制内容[^3]。 ---
评论 68
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值