我有一个包含一堆列的数据表,例如:
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语法通常很优雅,我发现这非常麻烦.有没有更好的方法呢?
这可能是一个蹩脚的问题,但无论如何.在RStudio中,我只是注意到键入一个数字,......和另一个数字会将字符的语法高亮显示从海军蓝变为淡蓝色以及...之后的数字.
例如,这是一个具有这种独特颜色的数字:
4..4
Run Code Online (Sandbox Code Playgroud)
部分"..4"具有浅蓝色.
我使用默认语法着色.我尝试在解释器中引入这样的常量但我只得到错误"错误:"4..5"中的意外数字常量,并且带有"两个点"或...的查询似乎不是非常友好的谷歌.
有谁知道".."的用法是什么,如果有的话?
对不起,如果这是非常基本的.我有一个名称列表和一个矩阵,这些名称作为列名.但是,组合名称的顺序不同.
例如.名单:colname4 colname3 colname2 colname5 colname1
Matrix Colnames:colname1 colname2 colname3 colname4 colname5
我试图按照名称顺序列表的顺序排列矩阵列.
我试过test <- match(colnames(matrix1), colnames(matrix2))
但它没有用.你知道其他选择吗?