基于列名称R选择多个列

基于列名称R选择多个列,r,dataframe,select,subset,R,Dataframe,Select,Subset,我想创建一个myID数据框架,其中包含合并的的列SNP、trait、protein、protein.x、protein.y、代谢物、代谢物.x、代谢物.y。以下代码起作用: myID <- subset(merged, select = c(SNP, trait, protein, protein.x, protein.y, metabolite, metabolite.x, metabolite.y)) 由于您似乎使用了data.table,因此可以使用.SD选择列。首先,使用正则

我想创建一个
myID
数据框架,其中包含
合并的
的列
SNP、trait、protein、protein.x、protein.y、代谢物、代谢物.x、代谢物.y
。以下代码起作用:

myID <- subset(merged, select = c(SNP, trait, protein, protein.x, protein.y, metabolite, metabolite.x, metabolite.y))  

由于您似乎使用了
data.table
,因此可以使用
.SD
选择列。首先,使用正则表达式选择列名(可能更优雅)


cols对Base R中的代码稍作修改怎么样:

subset(merged, select = grep("^SNP|^rai|^protei|^metabolit", names(merged), value = T))  

         SNP   trait protein.x protein.y protein metabolite.x metabolite.y metabolite
1: rs1001567 complex      IL16      IL18     IL6          Ile          Leu        Val
2: rs1002076 complex      IL16      IL18     IL6          Ile          Leu        Val
3: rs1002365 complex      IL16      IL18     IL6          Ile          Leu        Val
4: rs1002480 complex      IL16      IL18     IL6          Ile          Leu        Val
subset(merged, select = grep("^SNP|^rai|^protei|^metabolit", names(merged), value = T))  

         SNP   trait protein.x protein.y protein metabolite.x metabolite.y metabolite
1: rs1001567 complex      IL16      IL18     IL6          Ile          Leu        Val
2: rs1002076 complex      IL16      IL18     IL6          Ile          Leu        Val
3: rs1002365 complex      IL16      IL18     IL6          Ile          Leu        Val
4: rs1002480 complex      IL16      IL18     IL6          Ile          Leu        Val