Microsoft Excel是使用最广泛的电子表格程序,它是以.xls或.xlsx格式存储数据。 R可以使用某些excel特定的包直接读取这些文件的内容。一些常用的软件包有 - XLConnect,xlsx,gdata等。在这个篇文章中,我们将使用xlsx软件包。 R也可以使用这个包写入excel文件。
安装xlsx软件包
可以在R控制台中使用以下命令来安装xlsx软件包。它可能会要求安装一些这个包所依赖的附加包。按照相同的命令与所需的包名来安装附加的包。
install.packages("xlsx")
R
验证并加载“xlsx”软件包
使用以下命令来验证和加载xlsx包。参考以下代码 -
# Verify the package is installed.
any(grepl("xlsx",installed.packages()))
# Load the library into R workspace.
library("xlsx")
R
当脚本运行时,得到以下输出 -
[1] TRUE
Loading required package: rJava
Loading required package: methods
Loading required package: xlsxjars
Shell
注: 如果第一个输出结果为:FALSE,请 install.packages("xlsx") 语句重新加载安装。
准备xlsx文件用作为输入
打开Microsoft excel。将以下数据复制并粘贴到名为sheet1的工作表中。
idname salarystart_datedept
1Rick 623.31/1/2012IT
2Dan 515.2 9/23/2013 Operations
3Michelle 61111/15/2014IT
4Ryan 7295/11/2014HR
5Gary 843.253/27/2015Finance
6Nina 578 5/21/2013IT
7Simon 632.87/30/2013Operations
8Guru 722.56/17/2014Finance
Txt
如下所示 -
如下所示 -
还将以下数据复制并粘贴到另一个工作表,并将此工作表重命名为city。
name city
Rick Seattle
Dan Tampa
Michelle Chicago
Ryan Seattle
Gary Houston
Nina Boston
Simon Mumbai
Guru Dallas
如下所示 -
将Excel文件另存为“input.xlsx”,应该将此文件保存在R工作区的当前工作目录中。
读取Excel文件
使用read.xlsx()函数读取input.xlsx,如下所示,结果作为数据帧存储在R环境中。
# Read the first worksheet in the file input.xlsx.
data <- read.xlsx("input.xlsx", sheetIndex = 1)
print(data)
R
当我们执行上述代码时,会产生以下结果 -
id name salary start_date dept
1 1 Rick 623.30 2012-01-01 IT
2 2 Dan 515.20 2013-09-23 Operations
3 3 Michelle 611.00 2014-11-15 IT
4 4 Ryan 729.00 2014-05-11 HR
5 NA Gary 843.25 2015-03-27Finance
6 6 Nina 578.00 2013-05-21 IT
7 7Simon 632.80 2013-07-30 Operations
8 8 Guru 722.50 2014-06-17Finance
R语言读写excel表格
读文件常用的几种方法:
1. library(readxl)
data <- read_excel("name.xlsx",sheet=1,col_names = T,col_types = NULL ,na="", skip=0)
2. data <- read.table("name.txt",header = T,sep = "")
3. read.csv(file.choose(),header = F,sep = ",")#逗号可删除
data <-data.frame(data$a,data$b)#合并成数据框结构
写入文件:
write.table(data,file = "data.csv",sep=",",row.names = F, col.names = F ,quote = F)
以下有三种方法:
根据需求读取对应的sheet1
综合来看,openxlsx的方法简单粗暴,而且经多名骨灰级玩家证明,罕有bug出现。乃R语言和Excel读取的绝对神器。不过笔者也发现,openxlsx包仅适用于.xlsx格式文件。前期的xls格式文件可能还需要前两种方法来读取。除了以上三种方法,还有类似的包如xlsx、readxl。此处依旧强推神器openxlsx。首先,.xlsx文件存储行数大大提升,从65536行数据提升到了104万条数据。其次,它十分便捷,函数所需参数较少。当然最后的最后,它可能需要的R的版本比较的新。
用 openxlsx包 写入Excel