将多个 Excel 工作表合并为 R 中的单个数据框
在本文中,我们将讨论如何在 R 编程语言中将多个 excel 工作表组合成单个数据框。
下面的 XLSX 文件“gfg.xlsx”已用于所有不同的方法。
方法一:使用readxl包
内置的 setwd() 方法用于设置 R 中的工作目录。
R 中的 readxl 包用于在 R 中导入和读取 Excel 工作簿,可用于轻松工作和修改 .xslsx 工作表。可以使用以下语法将其安装并加载到 R 工作空间中:
install.packages("readxl")
最初,调用 excel_sheets() 方法以获取 Excel 工作簿中包含的所有工作表名称,以及指定的文件路径。
excel_sheets(path)
R 中的 lapply() 方法用于将函数(用户定义的或预定义的)应用于 R 列表或数据帧中包含的一组组件。 lapply() 方法返回一个与输入对象长度相同的对象。
Syntax: lapply( obj , FUN)
Arguments:
obj – The object to apply the function on
FUN – The function to be applied over different components of the object obj.
其中FUN就是这个包存储的read_excel方法,用于将指定sheet名称的内容读入tibble中,tibble是一种类似表格的结构,用于存储固定行和列的数据。 lapply 方法对工作簿的每个工作表应用 read_excel 方法。
Syntax: read_excel(path, sheet)
Arguments:
path – The file path
sheet – The sheet name to read
最后的 tibble 由内置方法 bind_rows() 生成,该方法将各个数据帧作为输入并为它们分配一个单一的 ID 属性键。如果该列出现在任何输入中,则 bind_rows() 的输出将包含该列。输出 tibble 包含所有 sheet 中包含的记录,以及它们各自的数据类型。列名“Sheet”用于通过形成主列来引导所有行。
R
# installing the required libraries
library(readxl)
library(tidyverse)
# specifying the path for file
path <- "/Users/mallikagupta/Desktop/"
# set the working directory
setwd(path)
# accessing all the sheets
sheet = excel_sheets("Gfg.xlsx")
# applying sheet names to dataframe names
data_frame = lapply(setNames(sheet, sheet),
function(x) read_excel("Gfg.xlsx", sheet=x))
# attaching all dataframes together
data_frame = bind_rows(data_frame, .id="Sheet")
# printing data of all sheets
print (data_frame)
R
# 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 , rbind=TRUE)
# print data
print (data)
输出
# A tibble: 11 x 4
Sheet ID Name Job
1 Sheet1 1 A Engineer
2 Sheet1 2 B CA
3 Sheet1 3 C SDE
4 Sheet1 4 D CA
5 Sheet1 5 E SDE
6 Sheet2 6 F SDE
7 Sheet2 7 G CA
8 Sheet2 8 H CA
9 Sheet2 9 I Admin
10 Sheet3 10 J SDE
11 Sheet3 11 K Admin
方法二:使用rio包
里奥包用于刺激R.里约热内卢进行快速,便捷的数据导入和导出操作使得哪些可以用来轻松地阅读文件的文件格式本身的扣除。
install.packages("rio")
R 中的 import() 和 export() 方法确定指定文件扩展名的数据结构。方法 import_list() 从多对象文件(例如 Excel 工作簿或 R 压缩文件)导入数据帧列表。
Syntax: import_list(file, rbind = FALSE)
Arguments :
file – The file name of the Excel workbook to access
rbind – Indicator of whether to combine or not the dataframes into a single dataframe
电阻
# 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 , rbind=TRUE)
# print data
print (data)
输出
ID Name Job _file
1 1 A Engineer 1
2 2 B CA 1
3 3 C SDE 1
4 4 D CA 1
5 5 E SDE 1
6 6 F SDE 2
7 7 G CA 2
8 8 H CA 2
9 9 I Admin 2
10 10 J SDE 3
11 11 K Admin 3