R Grep: Использование grep для извлечения столбцов из фрейма данных
Вот мои данные (это dput):
structure(list(`dat$Material` = structure(1L, .Label = "stuff", class = "factor"),
Past.Due = structure(NA_integer_, .Names = "x", .Label = character(0), class = "factor"),
D01 = structure(NA_integer_, .Names = "x", .Label = character(0), class = "factor"),
D02 = structure(NA_integer_, .Names = "x", .Label = character(0), class = "factor"),
D03 = structure(1L, .Names = "x", .Label = "100.00", class = "factor"),
D04 = structure(1L, .Names = "x", .Label = "100.00", class = "factor"),
D05 = structure(1L, .Names = "x", .Label = "100.00", class = "factor"),
Wk.1.PD = structure(NA_integer_, .Names = "x", .Label = character(0), class = "factor"),
D06 = structure(1L, .Names = "x", .Label = "100.00", class = "factor"),
D07 = structure(1L, .Names = "x", .Label = "100.00", class = "factor")), .Names = c("dat$Material",
"Past.Due", "D01", "D02", "D03", "D04", "D05", "Wk.1.PD", "D06",
"D07"), row.names = "x", class = "data.frame")
В основном я хочу извлечь все столбцы, чье имя следует за паттерном "D##", поэтому D01,D02,D03 и т. Д. Я пытался использовать grep
а также grepl
но я новичок в регулярных выражениях и не могу понять, как заставить его работать.
Я старался:
dat[grepl("D\d\d",names(dat))]
Но это не сработало. Мои фактические данные намного больше столбцов, чем я предоставил, поэтому жесткое кодирование номеров столбцов и ручное извлечение столбцов не нужны. Любые советы или предложения?