R语言 把多个Excel工作表合并成一个数据框架

R语言 把多个Excel工作表合并成一个数据框架

在这篇文章中,我们将讨论如何在R编程语言中把多个Excel工作表合并成一个数据框架。

下面的XLSX文件 “gfg.xlsx “已被用于所有不同的方法。

在R语言中把多个Excel工作表合并成一个数据框架

方法1:使用readxl包

内置的setwd()方法被用来设置R语言中的工作目录。

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 – 要读取的工作表名称

最终的tibble是由内置的bind_rows()方法产生的,它将单个数据帧作为输入,并为它们分配一个单一的ID属性键。bind_rows()的输出将包含一个列,如果该列出现在任何输入中。输出的tibble包含所有表单中的记录,以及它们各自的数据类型。列名 “Sheet “通过形成一个主列来引导所有的行。

# 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)

输出

# A tibble: 11 x 4    
  Sheet     ID Name  Job         
  <chr>  <dbl> <chr> <chr>     
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   

方法2:使用rio包

rio包用于 刺激在R中进行快速和简单的数据导入和导出操作。Rio对文件格式本身进行推理,可以用来轻松地读取文件 。

install.packages("rio")

R中的import()和export()方法确定指定文件扩展名的数据结构。import_list()方法从一个多对象文件中导入一个数据帧列表,例如,一个Excel工作簿或一个R压缩文件。

语法: import_list(file, rbind = FALSE)

参数:

file – 要访问的Excel工作簿的文件名

rbind – 是否将数据帧合并为一个数据帧的指示器

# 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 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程