在R中,可以根据名称模式轻松地从 Dataframe 中删除列:例如,参见How to drop columns by name pattern in R?和Subset data to contain only columns whose names match a condition。
> df <- data.frame(A=c(1,2,3), A2=c(1,2,3), B=c(1,2,3), BG=c(2,2,3))
> df[, -grep("A", colnames(df))]
B BG
1 1 2
2 2 2
3 3 3
字符串
但是直接将解决方案应用于data.table是行不通的。
> dt <- data.table(A=c(1,2,3), A2=c(1,2,3), B=c(1,2,3), BG=c(2,2,3))
> dt[, -grep("A", colnames(df))]
[1] -1 -2
型
能做些什么呢?
2条答案
按热度按时间relj7zay1#
正如Rich Scriven指出的那样,
dt[, grep("A", names(dt)) := NULL]
可以工作。字符串
46qrfjad2#
使用内置的
data.table::patterns
函数:字符串