我正在使用read_excel
导入 Excel 文件的速度和简单性。
不幸的是,目前还没有从数据集中排除不需要的选定列的能力。为了节省精力,我"x"
用col_names
参数命名这些列,这比尝试跟踪 ,x1
等更容易x2
。
如果可能的话,我想即时排除这些列,以避免额外的复制步骤,所以在伪代码中:
read_excel("data.xlsx", col_names = c("x", "keep", "x"))[ , !"x"]
我们可以使用readxl
包中包含的示例数据集进行说明:
library(readxl)
DF <- read_excel(system.file("extdata/datasets.xlsx", package = "readxl"),
col_names = c("x", "x", "length", "width", "x"), skip = 1L)
我看到的工作方法并不完全是即时工作的,例如,已经存储了DF
,我们现在可以这样做:
DF <- DF[ , -grep("^x$", names(DF))]
这可行,但需要通过存储复制DF
它,然后覆盖它;我宁愿删除同一命令中的列,以便正确read_excel
分配ab initio。DF
其他类似的方法需要声明临时变量,如果可能的话,我更愿意避免,例如,
col_names <- c("x", "x", "length", "width", "x")
DF <- read_excel(system.file("extdata/datasets.xlsx", package = "readxl"),
col_names = col_names, skip = 1L)[ , -grep("^x$", col_names)]
有没有办法在不创建不必要的临时变量的情况下删除这些列?
(我可以转换为data.table
,但我想知道是否有办法在没有 的情况下这样做data.table
)