我有一个数据表格,其中包含许多列,例如:
dt<-data.table(matrix(runif(10*10),10,10))
我想对数据表执行一些操作,例如生成相关矩阵 (cor(dt)
)。为了做到这一点,我想要删除一些包含非数字值或值超出某个范围的列。
假设我想找到排除V1、V2、V3和V5的相关矩阵。
这是我当前的方法:
cols<-!(colnames(dt)=="V1" | colnames(dt)=="V2" | colnames(dt)=="V3" | colnames(dt)=="V5")
new_dt<-subset(dt,,cols)
cor(new_dt)
考虑到 data.table 语法通常是如此优雅,我觉得这相当麻烦。有没有更好的方法?
%in%
替代==
。!colnames(dt) %in% paste0('V', c(1:2,3,5))
。 - akrun