R 数据帧中的子多个模式

R 数据帧中的子多个模式,r,R,我想根据不同的列名称模式对数据帧进行子集划分。我尝试了一种模式,如下所示: df<-data.frame( ID=c("AA","AA","BB","BB","CC","CC", "DD", "DD"), var.FA=c(1,2,1,2,1,2,1,2), var.SI=c(100, 33, 3000, 22, 12 ,34, 12, 78), var2.FA=c(10,15,100,20,10,15,2, 4), var2.SE=c(100, 33, 3000, 2

我想根据不同的列名称模式对数据帧进行子集划分。我尝试了一种模式,如下所示:

df<-data.frame(
  ID=c("AA","AA","BB","BB","CC","CC", "DD", "DD"),
  var.FA=c(1,2,1,2,1,2,1,2),
  var.SI=c(100, 33, 3000, 22, 12 ,34, 12, 78),
  var2.FA=c(10,15,100,20,10,15,2, 4),
  var2.SE=c(100, 33, 3000, 22, 12 ,34, 12, 78))

df[sub('.*\\.', "", x=colnames(df))=="FA"]
预期产量

 var.FA var2.FA var2.SE
1      1      10     100
2      2      15      33
3      1     100    3000
4      2      20      22
5      1      10      12
6      2      15      34
7      1       2      12
8      2       4      78

对于多个元素,请在%

df[sub('.*\\.', "", x=colnames(df)) %in% c('FA', 'SE')]
df[grep((FA | SE)$”,names(df))]
将起作用。
df[sub('.*\\.', "", x=colnames(df)) %in% c('FA', 'SE')]