R语言 如何读取一个有多个表的XLSX文件
在这篇文章中,我们将看到如何在R语言中读取一个有多个表的XLSX文件。在R语言中,有各种外部包用于读取带有多张纸的XLSX文件。
使用的文件 。
方法1:使用readxl包
R语言中的readxl包用于在R语言中导入和读取Excel工作簿,它可以用来轻松地工作和修改.xslsx表。它可以通过以下语法安装并加载到R工作空间中。
install.packages("readxl")
最初,调用excel_sheets()方法来获取Excel工作簿中包含的所有工作表名称,并指定文件路径。
excel_sheets(path)
R中的lapply()方法用于将一个函数(无论是用户定义的还是预先定义的)应用于R列表或数据框中包含的一组组件。lapply( ) 方法返回一个与输入对象相同长度的对象。
语法: lapply( obj , FUN)
参数
obj – 要应用函数的对象
FUN – 要在obj对象的不同组件上应用的函数。
FUN是这个包存储的read_excel方法,用于将指定的工作表名称的内容读入tibble中,tibble是一种类似于表格的结构,用于以固定的行和列存储数据。lapply方法将read_excel方法应用于工作簿的每一个工作表。
语法: read_excel(path, sheet)
参数
path – 文件路径
sheet – 要读取的工作表名称
read_excel方法返回的tibble对象可以再次使用lapply方法转换为数据帧,并指定函数as.data.frame()将每个对象转换为数据帧。这些数据框架可以使用内置的R names()方法分配给相应的工作表名称,以获得更好的清晰度。
names (df) <- new-name
代码
# importing required packages
library(readxl)
multiplesheets <- function(fname) {
# getting info about all excel sheets
sheets <- readxl::excel_sheets(fname)
tibble <- lapply(sheets, function(x) readxl::read_excel(fname, sheet = x))
data_frame <- lapply(tibble, as.data.frame)
# assigning names to data frames
names(data_frame) <- sheets
# print data frame
print(data_frame)
}
# specifying the path name
path <- "/Users/mallikagupta/Desktop/Gfg.xlsx"
multiplesheets(path)
输出
$Sheet1
ID Name Job
1 1 A Engineer
2 2 B CA
3 3 C SDE
4 4 D CA
5 5 E SDE
$Sheet2
Post Likes
1 A 23
2 B 34
3 C 56
4 D 78
方法2:使用里奥包。
rio包用于 刺激在R中进行快速和简单的数据导入和导出操作。Rio对文件格式本身进行推理,可以用来轻松地读取文件 。
install.packages("rio")
R中的import()和export()方法决定了指定文件扩展名的数据结构。 import_list()方法从一个多对象文件中导入一个数据框架列表,例如,Excel工作簿或R的压缩文件。
语法: import_list(file)
参数 :
file – 要访问的Excel工作簿的文件名
在读取Excel工作簿的输出时,列名和行名将被保留。 在读取过程中,工作表的名称也可以被访问。
# specifying the path name
path <- "/Users/mallikagupta/Desktop/Gfg.xlsx"
# importing the required library
library(rio)
# reading data from all sheets
data <- import_list(path)
# print data
print (data)
输出
$Sheet1
ID Name Job
1 1 A Engineer
2 2 B CA
3 3 C SDE
4 4 D CA
5 5 E SDE
$Sheet2
Post Likes
1 A 23
2 B 34
3 C 56
4 D 78
方法3:使用openxlsx包。
R中的openxlsx包用于创建和操作Excel文件,它为读写以及修改指定工作簿中的工作表提供了一个高级接口。该包可以使用以下语法加载并安装到工作空间。
install.packages("openxlsx")
该包的getSheetNames( )方法用于返回xlsx文件中包含的工作表名称。
getSheetNames(file)
R中的lapply()方法用于将一个函数(无论是用户定义的还是预先定义的)应用于R列表或数据框中包含的一组组件。lapply( ) 方法返回一个与输入对象相同长度的对象。
语法: lapply( obj , FUN)
参数
obj – 要应用函数的对象
FUN – 要在obj对象的不同组件上应用的函数。
在使用前面的方法检索了不同的工作表名称后,函数read.xlsx被应用在工作簿的每一个工作表上。read.xlsx方法用于从Excel文件或工作簿对象中读取数据到指定文件路径上的R data.frame对象。
在这种情况下,lapply()方法将工作表的名称作为输入,并返回属于工作簿中每个工作表的相应数据框架。 然后,这些数据框架被分配给R中的names()方法的工作表名称。
代码
# specifying the path name
path <- "/Users/mallikagupta/Desktop/Gfg.xlsx"
# importing the required library
library(openxlsx)
# getting data from sheets
sheets <- openxlsx::getSheetNames(path)
data_frame <- lapply(sheets, openxlsx::read.xlsx, xlsxFile=path)
# assigning names to data frame
names(data_frame) <- sheets
# printing the data
print (data_frame)
输出
$Sheet1
ID Name Job
1 1 A Engineer
2 2 B CA
3 3 C SDE
4 4 D CA
5 5 E SDE
$Sheet2
Post Likes
1 A 23
2 B 34
3 C 56
4 D 78