对于项目要求,我想首先检查包含 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 ))
Run Code Online (Sandbox Code Playgroud)
由于我使用的上述方法不是直接的方法,那么有没有更好的方法可以达到结果呢?
如果您使用包,openxlsx读取列名的方法是:
columnsNames <- read.xlsx(file, sheetName='sheet name you want', colNames = F, rows = 1)
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个包含一行的数据框,其中包含 Excel 工作表的列名称。通过设置,colNames = F您将避免读取第一个数据行。
如果第一列包含行名称,那么您可以以类似的方式读取它们:
rowsNames <- read.xlsx(file, sheetName='sheet name you want', colNames = F, cols = 1)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果该列有名称,则将 colNames 设置为 TRUE,如果没有,则将其保留为 F。
警告: cols=1并rows=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
Run Code Online (Sandbox Code Playgroud)