按特定样本前缀对列名向量进行子集化

col*_*lin 4 r

假设我有一个看起来像这样的数据框

ca01<- c(1:10)
ca02<- c(2:11)
ca03<- c(3:12)
stuff.1<- rep('test',10)
other<- rep(9,10)

data<- data.frame(ca01,ca02,ca03,stuff.1,other)
Run Code Online (Sandbox Code Playgroud)

然后我创建一个包含列名的向量

samps<- colnames(data)
Run Code Online (Sandbox Code Playgroud)

然后我想过滤这个向量以只包含以前缀“ca”开头的项目。我不想通过编写专门删除这些的单独代码行来排除 stuff.1 和其他,所以像

samps<-samps[samps!='stuff.1']
samps<-samps[samps!='other']
Run Code Online (Sandbox Code Playgroud)

不会合适。

Jil*_*ina 6

尝试使用 grepl

> Names <- colnames(data)
> Names[grepl("^ca", Names)]
[1] "ca01" "ca02" "ca03"
Run Code Online (Sandbox Code Playgroud)