Одним из способов является исключение столбцов, которые вы делаете не хотите.
i <- grep("_AA$", names(df1))
j <- grep("_BB$", names(df1))
dfA <- df1[, -j] # Exclude the 'BB' columns
dfB <- df1[, -i] # Exclude the 'AA' columns
Используя тот же принцип исключения, но с tidyverse
.
library(tidyverse)
df1 %>%
select(names(.)[!grepl("_BB$", names(.))])
df1 %>%
select(names(.)[!grepl("_AA$", names(.))])
Это может стать более tidyverse
способом с предложением комментария пользователя NColl .
df1 %>% select(-ends_with('_BB'))
df1 %>% select(-ends_with('_AA'))
Данные.
df1 <- as.data.frame(matrix(1:49, ncol = 7))
nms <- scan(what = character(), sep = "|",
text = "Year | hour | LOT | S123_AA | S135_AA | S1763_BB | S173_BB ")
names(df1) <- trimws(nms)