获取xlsx工作表的第一行和第一列,而无需读取R中的全部数据

时间:2019-05-22 10:17:52

标签: r

对于项目要求,我想先检查一个2张xlsx文件的第一行(列名)和第一列(行名)。第一张纸由需要我的名字的数据集组成,第二张纸由我需要行的名字的另一个数据集组成。

我检查了Colnames和rownames的选项,但是它需要读取数据。我只想获取名字和行名,而不读取数据进行初步检查。

Data1 <- read.xlsx(file, sheetName=data, colNames = TRUE,
                           endRow = 2)
print(colnames(Data1))

Data2 <- read.xlsx(file, sheetName=data, rowNames= TRUE,
                           endRow = 2)
print(rownames(Data2 ))

由于我使用的上述方法不是直接方法,是否有更好的方法来获得结果?

1 个答案:

答案 0 :(得分:2)

如果您使用软件包openxlsx,则读取列名的方式是:

columnsNames <- read.xlsx(file, sheetName='sheet name you want', colNames = F, rows = 1)

这将为您提供一个包含一行的数据框,其中包含Excel工作表的列名。通过设置colNames = F,您将避免读取第一行数据。

如果第一列包含行名,则可以用类似的方式读取它们:

rowsNames <- read.xlsx(file, sheetName='sheet name you want', colNames = F, cols = 1)

在这种情况下,将colNames设置为TRUE就是该列具有名称,否则,将其保留为F。

警告:cols=1rows=1会读取工作表的第一列和第一行,而不是第一行非空列/行。如果列“ A”为空,并且您的表从列“ B”开始,则设置cols=2

示例:

我有一个带有此数据的Excel,其左上角的单元格位于B2(列A为空,第一行为空):

---------------------------
|    |  Year|  Age| Weight|
|row1|  2019|   11|     87|
|row2|  2000|   22|     76|
|row3|  2015|   33|     65|
---------------------------

> columnsNames <- read.xlsx("Book3.xlsx", colNames = F, rows = 2)
> columnsNames
    X1  X2     X3
1 Year Age Weight

> rowsNames <- read.xlsx("Book3.xlsx", colNames = F, cols = 2)
> rowsNames
    X1
1 row1
2 row2
3 row3