如何用R的readxl包读取Excel中的不连续单元格区域?
解决readxl导入Excel不连续列区域的问题
readxl包的range参数不支持直接传入多个不连续的列范围,这是你之前几种写法无法生效的核心原因。以下是两种可行的实现方式:
方法1:分区域读取后合并(基于readxl)
分别读取每个目标列区域,再通过cbind()合并成一个数据框:
# 读取A:L列区域 dat1 <- readxl::read_xlsx( path = "C:/Users/javie/Documents/Estadística/Vitamina B12/Exoma_B12.xlsx", col_names = FALSE, sheet = 2, skip = 1, range = readxl::cell_cols("A:L") ) # 读取AP:BA列区域 dat2 <- readxl::read_xlsx( path = "C:/Users/javie/Documents/Estadística/Vitamina B12/Exoma_B12.xlsx", col_names = FALSE, sheet = 2, skip = 1, range = readxl::cell_cols("AP:BA") ) # 合并两个数据框 dat <- cbind(dat1, dat2)
方法2:使用openxlsx直接指定列号
openxlsx包支持直接通过列号向量指定不连续列,无需分多次读取:
library(openxlsx) # 列号对应:A-L是1-12,AP是第42列,BA是第53列 dat <- read.xlsx( xlsxFile = "C:/Users/javie/Documents/Estadística/Vitamina B12/Exoma_B12.xlsx", sheet = 2, colNames = FALSE, startRow = 2, # 等效于readxl的skip=1 cols = c(1:12, 42:53) )
内容的提问来源于stack exchange,提问作者Javier Hernando
相关产品推荐
相关产品推荐

