r - 在不读取 R 中的整个数据的情况下获取 xlsx 表的第一行和第一列

标签 r

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

我检查了 Colnames 和 rownames 的选项,但它需要读取数据。我只想获取 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 ))

既然我用的上面的方法不是直接的方法,那么有没有更好的方法来达到效果呢?

最佳答案

如果您使用包 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

关于r - 在不读取 R 中的整个数据的情况下获取 xlsx 表的第一行和第一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56254553/

相关文章:

R - 重新排序直方图条形 - ggplot2

r - 使用 ggplot 生成曼哈顿图

html - 如何在 RMarkdown 文档 HTML 中添加 Logo

用R读取csv文件中的分数

r - 使用 R Markdown 文档作为函数源

r - 在 R data.table 中粘贴多列对的有效方法

r - 使用循环变量

r - X 轴和堆叠条中的右框

r - 如何在 foreach( ... , .packages ="pkg") %dopar% 中指定 R 包的位置

r - 在 R 中设置等同于 .subset2?