在 R 中导入 Excel 表格

梅尔克NO

有没有办法将命名的 Excel 表作为 data.frame 导入 R 中?

我通常在单个工作表上有几个命名的 Excel 表,我想将它们作为 data.frames 导入,而不依赖于 Excel 表位置的静态行和列引用。

我试图设置namedRegion哪个是几个 Excel 导入函数的可用参数,但这似乎不适用于命名的 Excel 表。我目前正在使用 openxlxs 包,它有一个函数getTables()可以从单个工作表中创建一个带有 Excel 表名称的变量,而不是表中的数据。

里科德克斯

获取命名表需要一些工作。

首先,您需要加载工作簿。

library(openxlsx)

wb <- loadWorkbook("name_excel_file.xlsx")

接下来,您需要提取命名表的名称。

# get the name and the range
tables <- getTables(wb = wb,
                    sheet = 1)

如果您有多个命名表,它们都在tables. 我的命名表称为Table1

接下来提取列号和行号,稍后您将使用它们从 Excel 文件中提取命名表。

# get the range
table_range <- names(tables[tables == "Table1"])
table_range_refs <- strsplit(table_range, ":")[[1]]

# use a regex to extract out the row numbers
table_range_row_num <- gsub("[^0-9.]", "", table_range_refs)
# extract out the column numbers
table_range_col_num <- convertFromExcelRef(table_range_refs)

现在您重新读取带有colsandrows参数的 Excel 文件

# finally read it
my_df <- read.xlsx(xlsxFile = "name_excel_file.xlsx",
                   sheet = 1,
                   cols = table_range_col_num[1]:table_range_col_num[2],
                   rows = table_range_row_num[1]:table_range_row_num[2])

您最终会得到一个只有命名表内容的数据框。

我前一段时间用过这个。我在某处找到了这段代码,但我不知道从哪里开始了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章