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

cos*_*k08 3 grep r multiple-columns grepl

我试图使用该dplyr包来选择以i开头的所有列.我有以下代码:

dat<-select(newdat1,starts_with("i"))
Run Code Online (Sandbox Code Playgroud)

并且我的数据的名称是:

> colnames(newdat)
[1] "i22" "i21" "i20" "i24"
Run Code Online (Sandbox Code Playgroud)

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

MrF*_*ick 10

使用基数R,您可以使用grep匹配列名称.您可以使用

dat<-newdat1[,grep("^i", colnames(newdat1))]
Run Code Online (Sandbox Code Playgroud)

做一个类似查询的开始.您可以使用任何您想要的正则表达式作为模式grep().