Получился такой вектор:
codes <- c("3WC8" , "456" , "lev", "1")
Я хочу удалить "456"
и "1"
, но НЕ хочу удалять числа "3WC8"
.
3 ответа
Вы можете использовать gsub
для удаления всех чисел из каждого элемента, затем nzchar
для проверки / сохранения только ненулевых символьных элементов.
codes[nzchar(gsub("[0-9]+", "", codes))]
# [1] "3WC8" "lev"
Пытаться:
> codes[is.na(sapply(codes, as.numeric))]
[1] "3WC8" "lev"
Или просто (как предлагает @akrun в комментариях):
> codes[is.na(as.numeric(codes))]
[1] "3WC8" "lev"
Игнорируйте предупреждения в обоих кодах.
Или вы могли бы сделать:
grep("^\\d+$", codes, value=TRUE, invert=TRUE)
#[1] "3WC8" "lev"
Похожие вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.