相关疑难解决方法(0)

在data.table R中选择列的子集

我有一个包含一堆列的数据表,例如:

dt<-data.table(matrix(runif(10*10),10,10))
Run Code Online (Sandbox Code Playgroud)

我想对数据表执行一些操作,例如生成相关矩阵(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)
Run Code Online (Sandbox Code Playgroud)

考虑到data.table语法通常很优雅,我发现这非常麻烦.有没有更好的方法呢?

r data.table

46
推荐指数
4
解决办法
9万
查看次数

选择data.table中的列子集

我想打印数据表的所有列,dt除了其中一个已命名V3但不想按编号而是按名称引用它.这是我的代码:

  dt = data.table(matrix(sample(c(0,1),5,rep=T),50,10))
  dt[,-3,with=FALSE]   #  Is this the only way to not print column "V3"? 
Run Code Online (Sandbox Code Playgroud)

使用这种data frame方式,可以通过代码执行此操作:

  df = data.frame(matrix(sample(c(0,1),5,rep=T),50,10))
  df[,!(colnames(df)%in% c("X3"))]
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:是否有另一种方法不在数据表中打印一列而不必按编号引用它?我想找到类似于我上面使用的数据帧语法但使用数据表的东西.

r data.table

25
推荐指数
4
解决办法
2万
查看次数

标签 统计

data.table ×2

r ×2