首页 > 解决方案 > 通过列名中出现的单个单词对数据框进行子集

问题描述

我是stackoverflow和R的新手,所以我希望我不违反任何礼仪:)

所以我有一个相当大的基因表达水平数据框架,expression我想根据列名中出现的单词定义子集。

gene.adk1 gene.adk2 gene.adk3 gene.bas1 gene.bas2   etc
1         2         1         4         6

这只是数据框的一个小示例版本。我想要做的是定义一个子集仅包含标题中包含“adk”的列和标题中包含“bas”的列的另一个子集

我所做的是按字母顺序对列名进行排序并查看我的数据框以找出标题中包含“adk”的列数。然后我使用子集函数定义了子集:

adk <- subset.data.frame(expression, select = c(1:3))

有没有更优雅的方式来做到这一点?也许通过列名中的“adk”等单个词来定义子集?

提前致谢

马吕斯

标签: rsubset

解决方案


子集adk

adk <- expression[grepl("\\.adk", names(expression)]

子集bas

bas <- expression[grepl("\\.bas", names(expression)]

推荐阅读