У меня есть большая матрица с помеченными столбцами, мне нужно найти способ завершить grep

#r #regex

#r #регулярное выражение

Вопрос:

Имена моих столбцов

 log_mat: AA(1)-Ib, AA(1)-Ib1, AA(1)-Ib2, AA(1)-Ib3, AA(1)-Ib4, AA(1)-Ib5
  

Я пытался

 grep("AA(1)-Ib", colnames(log_mat), fixed = TRUE)
  

Он возвращает индекс столбца для всех значений, как бы я получил только AA-Ib возвращенный

Комментарии:

1. grep("AA\(1\)-Ib$", colnames(log_mat))

2. большое вам спасибо, double escape меня достал 🙂

Ответ №1:

grep() Функция возвращает только значения индекса, а grepl() — только логические значения (TRUE, FALSE). Для того, чтобы получить эти реальные значения, вы должны выполнить следующее:

 selected.colnames <- colnames(log_mat)[grep("AA(1)-Ib", 
                                       colnames(log_mat), fixed = TRUE)]
  

Или:

 selected.colnames <- colnames(log_mat)[grepl("AA(1)-Ib", 
                                       colnames(log_mat), fixed = TRUE)]
  

Ответ №2:

grep("AA\(1\)-Ib$", colnames(log_mat))