是否有一个R函数来按列名称的一部分制作子集?

Ale*_*ain 5 r dataframe

我正在寻找一个函数,以便在列名末尾的几个数据帧中分割数据帧.举个例子:

Year | hour | LOT | S123_AA | S135_AA | S1763_BB | S173_BB | ...
Run Code Online (Sandbox Code Playgroud)

所以我想把它分成2个数据帧:

Year | hour | LOT | S123_AA | S135_AA |
Run Code Online (Sandbox Code Playgroud)

Year | hour | LOT | S1763_BB | S173_BB |
Run Code Online (Sandbox Code Playgroud)

我的关键点是保存前3列并追加结束名称为_AA和_BB的所有列.

谢谢你的时间

G5W*_*G5W 6

您可以使用正确的子集grep.

df_AA = df[,c(1:3, grep("_AA$", colnames(df)))]
df_BB = df[,c(1:3, grep("_BB$", colnames(df)))]
Run Code Online (Sandbox Code Playgroud)