有没有办法将命名的 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)
现在您重新读取带有cols
androws
参数的 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] 删除。
我来说两句