相关疑难解决方法(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万
查看次数

如何根据值向量对R中数据帧中的行进行子集?

我有两个数据集应该是相同的大小但不是.我需要修剪A中不在B中的值,反之亦然,以消除进入报告的图形中的噪声.(别担心,这些数据没有被永久删除!)

我看过以下内容:

但是我仍然无法使其正常工作.这是我的代码:

bg2011missingFromBeg <- setdiff(x=eg2011$ID, y=bg2011$ID)
#attempt 1
eg2011cleaned <- subset(eg2011, ID != bg2011missingFromBeg)
#attempt 2
eg2011cleaned <- eg2011[!eg2011$ID %in% bg2011missingFromBeg]
Run Code Online (Sandbox Code Playgroud)

第一次尝试只是消除了生成的setdiff向量中的第一个值.第二次尝试产生并且笨拙的错误:

Error in `[.data.frame`(eg2012, !eg2012$ID %in% bg2012missingFromBeg) 
:  undefined columns selected
Run Code Online (Sandbox Code Playgroud)

r subset r-faq

45
推荐指数
3
解决办法
14万
查看次数

标签 统计

r ×2

data.table ×1

r-faq ×1

subset ×1