как использовать регулярное выражение в факторе с r

#r #regex

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

Вопрос:

У меня есть файл A.tsv :

 Sample
418641
NC
648464
PC
CQ POS 23.09
476844
  

Я хочу присвоить вектору только значение со 100% от целого числа. NC и PC всегда присутствуют, поэтому я легко их удаляю, но для «CQ POS 23.09» он может измениться на «CQ POS 30.09», поэтому я пробую некоторые регулярные выражения.
Я пытаюсь выполнить команду:

 sample_list3=unique(a$Sample)[which( unique(a$Sample) != "NC" amp; unique(a$Sample) != "PC" amp; unique(a$Sample) != grep("^QC"),a$Sample)]
  

но у меня ошибка :

 Error in grep("^QC") : argument "x" is missing
  

Может ли у кого-нибудь быть другое решение, отличное от grep?

Ответ №1:

Вы можете возвращать значения, в которых есть только целые числа.

 result <- as.integer(grep('^\d $', a$Sample, value = TRUE))
result
#[1] 418641 648464 476844
  

данные

 a <- structure(list(Sample = c("418641", "NC", "648464", "PC", "CQ", 
"POS", "23.09", "476844")), class = "data.frame", row.names = c(NA, -8L))
  

Ответ №2:

Мы можем просто преобразовать numeric и удалить элементы NA

 na.omit(as.numeric(a$Sample))