基于列名称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