导入具有多个工作表的Excel工作簿

9 浏览
0 Comments

导入具有多个工作表的Excel工作簿

我想要将一个具有多个工作表的Excel工作簿导入到R中,但我似乎无法完全实现这一目标。我一直在使用以下代码:\n

library(XLConnect)
# 读取Excel工作表
excel <- loadWorkbook("C:/Users/rawlingsd/Downloads/17-18 Prem Stats.xlsx")
# 获取工作表名称
sheet_names <- getSheets(excel)
names(sheet_names) <- sheet_names
# 将工作表放入数据框列表中
sheet_list <- lapply(sheet_names, function(.sheet){readWorksheet(object=excel, .sheet)})
# 将sheet_list限制为至少有1个维度的工作表
# sheet_list2 <- sheet_list[sapply(sheet_list, function(x) dim(x)[1]) > 0]
# 用于将每个Excel工作表读取为单独的数据框的代码
for (i in 1:length(sheet_list)){assign(paste0("2018df", i), as.data.frame(sheet_list[i]))}
# 定义用于清理每个数据框中数据的函数(根据您的数据进行更新)

\n如果有人能帮助我调整我的代码或分享一个对他们有效的代码,我将非常感激。

0
0 Comments

问题的出现原因:

这段代码的目的是通过使用readxl包中的read_excel函数来导入一个包含多个工作表的Excel工作簿。然后,使用sapply函数将每个工作表读取到一个列表中,然后将每个工作表转换为data.table对象。最后,如果设置了参数v为TRUE,则使用View函数在RStudio中查看每个工作表。

解决方法:

这段代码提供了一种导入包含多个工作表的Excel工作簿的方法。通过使用readxl包中的read_excel函数和sapply函数,可以将每个工作表读取到一个列表中。然后,将每个工作表转换为data.table对象,并使用lapply函数在RStudio中查看每个工作表。

完整的文章如下:

在R中,使用readxl包可以方便地导入Excel文件。然而,当Excel文件包含多个工作表时,导入过程可能会有些复杂。下面的代码提供了一种导入具有多个工作表的Excel工作簿的方法。

首先,我们定义了一个名为full_excel_read的函数。该函数接受两个参数,fpath和v。fpath是Excel文件的路径,v是一个逻辑值,表示是否在RStudio中查看每个工作表。

在函数内部,我们使用excel_sheets函数获取Excel文件中的所有工作表的名称,并将它们存储在一个名为sheetnames的向量中。

接下来,我们使用sapply函数遍历sheetnames向量,并使用read_excel函数将每个工作表读取到一个数据框中。这样,我们就得到了一个名为workbook的列表,其中包含了Excel文件中的每个工作表。

然后,我们使用for循环遍历sheetnames向量,并使用as.data.table函数将每个工作表转换为data.table对象。这样,我们就得到了一个包含了每个工作表的data.table对象的workbook列表。

最后,如果参数v的值为TRUE,则使用lapply函数遍历sheetnames向量,并使用View函数在RStudio中查看每个工作表。这样,我们就可以方便地查看Excel文件中的每个工作表。

通过使用这个full_excel_read函数,我们可以轻松地导入具有多个工作表的Excel工作簿,并在RStudio中查看每个工作表。这为我们在R中处理包含多个工作表的Excel文件提供了便利。

0
0 Comments

问题的原因是希望在R中导入具有多个工作表的Excel工作簿,并且需要使用openxlsx包来实现。解决方法是使用openxlsx包中的函数来读取工作簿中的所有工作表,并将其存储在R中的不同对象中。

以下是解决该问题的代码示例:

library(openxlsx)

a <- loadWorkbook('~/filename.xlsx')

sheetNames <- sheets(a)

for(i in 1:length(sheetNames))

{

assign(sheetNames[i],readWorkbook(a,sheet = i))

}

通过上述代码,可以将Excel工作簿中的所有工作表读取到R中,并将每个工作表存储在不同的对象中。在R的工作空间中,可以验证数据是否成功加载并查看。

感谢阅读!

0
0 Comments

问题:如何在R中导入具有多个工作表的Excel工作簿?

原因:用户想要将Excel工作簿中的多个工作表导入到R中。

解决方法:用户可以使用readxl包来实现。具体操作如下:

1. 首先,需要安装并加载readxl包。可以使用以下命令进行安装和加载:

install.packages("readxl")

library(readxl)

2. 然后,需要指定Excel文件的路径,并将其存储在一个变量中。可以使用以下命令获取示例文件的路径:

path <- readxl_example("datasets.xls")

3. 接下来,需要获取Excel文件中的所有工作表名称,并将其存储在一个变量中。可以使用以下命令获取工作表名称:

sheetnames <- excel_sheets(path)

4. 然后,可以使用lapply函数将每个工作表导入为一个数据框,并将这些数据框存储在一个列表中。可以使用以下命令实现:

mylist <- lapply(excel_sheets(path), read_excel, path = path)

5. 可以为列表中的每个数据框命名,使用工作表名称作为数据框的名称。可以使用以下命令实现:

names(mylist) <- sheetnames

6. 如果希望将数据框从列表中提取到全局环境中,可以使用list2env函数。可以使用以下命令实现:

list2env(mylist, .GlobalEnv)

通过上述步骤,用户可以成功将Excel工作簿中的多个工作表导入到R中,并在全局环境中使用这些数据框。

0