select 列基于在 r 中使用 grep 或 grepl 的列的首字母

select columns based on first letter of columns using grep or grepl in r

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

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

我的数据的别名是:

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

这只是一个巧合,它们都是以i开头的,因为在其他情况下会有更大的变化;因此,我想自动化这个过程。问题是我使用 dplyr 的代码似乎是正确的;但是,我的包有问题,所以我想知道 if/how 使用 grep 或 grepl 或任何真正使用基本包的东西来完成相同的任务。谢谢!

使用 base R ,您可以使用 grep 来匹配列名。您可以使用

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

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

中的模式