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

R 按特定的样本前缀对列名向量进行子集,r,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) ca01尝试使用grepl > Names <- colnames(data) > Names[grepl("^ca", Names)] [1

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

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)

ca01尝试使用
grepl

> Names <- colnames(data)
> Names[grepl("^ca", Names)]
[1] "ca01" "ca02" "ca03"
>名称名称[grepl(“^ca”,名称)]
[1] “ca01”“ca02”“ca03”

如果您以后想使用该向量对数据进行子集划分,下面介绍如何使用包dplyr来完成这项工作。它有一个功能
select
,用于选择/取消选择data.frame的列,在该功能中,您可以使用各种特殊的选择功能。在这种情况下,因为您想选择具有前缀的列,因此可以使用名为
start_uwith()
。下面是它的样子:

library(dplyr)

data %>% 
  select(starts_with("ca"))
#   ca01 ca02 ca03
#1     1    2    3
#2     2    3    4
#3     3    4    5
#4     4    5    6
#5     5    6    7
#6     6    7    8
#7     7    8    9
#8     8    9   10
#9     9   10   11
#10   10   11   12
在其他情况下,您还可以使用其他选择功能,例如
结尾、
包含
一个
等。您可以通过键入
?在加载包后选择
来了解它

%%>%%
是一个向前管道操作符,您可以使用它创建一个管道或多个命令链,并将数据从一个函数转发到下一个函数。

data[!grepl(“^ca”,samps)]
> Names <- colnames(data)
> Names[grepl("^ca", Names)]
[1] "ca01" "ca02" "ca03"
library(dplyr)

data %>% 
  select(starts_with("ca"))
#   ca01 ca02 ca03
#1     1    2    3
#2     2    3    4
#3     3    4    5
#4     4    5    6
#5     5    6    7
#6     6    7    8
#7     7    8    9
#8     8    9   10
#9     9   10   11
#10   10   11   12