从 R 中的大型 Excel 文件中读取/导入特定行

Read / Import specific rows from large Excel files in R

我有几十个非常重的 Excel 文件需要导入 R(然后重新绑定)。每个文件有 2 sheets,其中第二个 sheet(名称:“结果”)至少包含 100K 行,大约有 350 列。

我想按列从每个文件中读取 sheet“结果”的子集,但最重要的是按特定行读取。数据中的每个“ID”都有一个主行,然后是下面的多行,其中包含特定列中的数据。我只想读取主行(这使每个文件有 50-400 行(取决于文件)和 150 个变量)。对主要行进行编号的第一列没有 header.

这是数据的样子(简化):

我只想导入第一列不为空但已编号(即 1.、13.、34.、211.)的行和特定列,在此示例中为第 2、3、5 列(即姓名、ID、状态)。所需的输出将是:

有没有简单的方法可以做到这一点?

假设 a 是我们的 excel 文件,作为数据框。

library(readxl)
a <- as.data.frame(read_excel("Pattern/File.xlsx",sheet = "Results"))

例如,我们想要 select 列 1 到 3,所以使用

subset(a[,1:3],is.na(a[1])==FALSE)

通过此函数,您在第一列中使用不同于 NA 的值对输入数据框进行子集化。

输出:

  ...1 name   ID
1    1  Dan us1d
4   13  Nev sa2e
6   34  Sam il5a

记下第一列名称(“...1”)。这是由 read_excel() 函数自动生成的,但应该不是问题。