相关疑难解决方法(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中选择列?

我试图在data.table中选择那些名称出现在我的角色向量中的列.该操作在纯data.frame中工作,但在data.table中不起作用.这是一个可重复的例子.

> names(mtcars)
 [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
[11] "carb"
> myVector <- c('disp', 'hp', 'wt')
> head(mtcars[, myVector])
                  disp  hp    wt
Mazda RX4          160 110 2.620
Mazda RX4 Wag      160 110 2.875
Datsun 710         108  93 2.320
Hornet 4 Drive     258 110 3.215
Hornet Sportabout  360 175 3.440
Valiant            225 105 3.460
Run Code Online (Sandbox Code Playgroud)

我刚刚制作了一个包含disp,, hp和的矢量,并且wt我使用该矢量在我的data.frame中选择了相应的列.现在让我们从data.frame中创建一个data.table对象,并尝试执行相同的操作.

> library(data.table)
> mtcarsDT <- data.table(mtcars)
> mtcarsDT[, myVector]
[1] "disp" "hp"   "wt"  
Run Code Online (Sandbox Code Playgroud)

r data.table

28
推荐指数
1
解决办法
4万
查看次数

标签 统计

data.table ×2

r ×2