Немного дольше, но вам не нужно использовать grep для решения проблемы.Вы можете просто преобразовать, и те, которые преобразованы (не NA), - это те, которые вы хотите сохранить:
test<-c("1","2","3","abc","1as")
test_num<-as.numeric(test)
test_num_clean<-test_num[!is.na(test_num)]
А если вы предпочитаете строки:
test_str<-as.character(test_num_clean)