使用r中的grep或grepl选择基于列的第一个字母的列

时间:2015-06-24 17:34:35

标签: r grep multiple-columns grepl

我正在尝试使用dplyr包来选择以i开头的所有列。我有以下代码:

dat<-select(newdat1,starts_with("i"))

我的数据的名称是:

> colnames(newdat)
[1] "i22" "i21" "i20" "i24"

在这种情况下,这只是一个巧合,它们都以i开头,因为在其他情况下会有更多的变化;因此,我想自动化这个过程。问题是我的代码使用dplyr是正确的;但是,我遇到了包的问题,​​所以我想知道是否/如何用grep或grepl完成相同的任务,或者任何真正使用基础包的事情。谢谢!

1 个答案:

答案 0 :(得分:10)

使用基数R,您可以使用grep来匹配列名。你可以使用

dat<-newdat1[,grep("^i", colnames(newdat1))]

用类似的查询进行启动。您可以将所需的任何正则表达式用作grep()

中的模式