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