我正在尝试使用 dplyr
包中的 select
函数删除 data.table
中的列,但遇到了当没有列匹配我的搜索模式时出错。
使用标准的 iris
数据集并导入适当的包,
library(dplyr)
library(data.table)
select(data.table(iris), -matches("^Petal"))
# returns a table with three columns: Sepal.Length, Sepal.Width, Species
select(data.table(iris), -matches("^ER[[:digit:]]+$"))
# displays error message:
# Error in data.table::setnames(out, names(vars)) : x has no column names
有什么方法可以删除与给定正则表达式匹配的任何列(如果它们存在),否则保持表不变?
最佳答案
试试这个
iris[, !grepl("^ER[[:digit:]]+$", names(iris))]
关于regex - 使用 dplyr 从 data.table 中删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29927253/