Фильтрация чисел выше определенного порога для нескольких столбцов в R

У меня есть набор данных с более чем 600 переменными, и я хотел бы сохранить только строки, в которых значения в нескольких столбцах превышают определенный порог, в моем случае> = 5 000 000.

Для одного столбца я бы отфильтровал так:

df <- df %>%
  filter(variable.2019.03 >= 5000000)

Я мог бы сделать это для нескольких столбцов следующим образом:

df <- df %>%
  filter(variable.2019.03 >= 5000000 & variable.2019.04 >= 5000000 &
         variable.2019.05 >= 5000000)

Однако я хочу сделать это для 30+ столбцов, поэтому я надеялся, что есть более элегантный способ. Насколько я понимаю, я должен иметь возможность сделать это, используя функцию filter() в сочетании с if_all(), но мне удалось найти только пример, где эти функции используются для фильтрации столбцов символов, а не числовых. Подобно примерам здесь, я пробовал:

  filter(if_all(>= 5000000), variable.2019.03:variable.2022.03)

который только дал это сообщение об ошибке:

Error: unexpected '>=' in:
"df <- df %>%
  filter(if_all(>="

Любые предложения по достижению желаемого результата?

Получение данных из формы с помощью JavaScript - краткое руководство
Получение данных из формы с помощью JavaScript - краткое руководство
Получить данные из формы с помощью JS очень просто: вы запрашиваете элемент формы, передаете его конструктору new FormData() и, наконец, получаете...
Пользовательские правила валидации в Laravel
Пользовательские правила валидации в Laravel
Если вы хотите создать свое собственное правило валидации, Laravel предоставляет возможность сделать это. Создайте правило с помощью следующей...
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
1
0
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нам нужно указать столбцы (.cols) внутри if_all. По умолчанию это everything(), поэтому мы меняем, чтобы соответствовать только тем столбцам, которые начинаются с (^) «переменная», за которой следует точка (.), четыре цифры (\\d{4})..., в matches (который использует регулярное выражение для сопоставления названия столбцов)

library(dplyr)
df %>%
   filter(if_all(matches('^variable\\.\\d{4}\\.d{2}$'), ~ .x >= 5000000))

Если столбцы смежные, мы можем использовать :

df %>%
    filter(if_all(variable.2019.03:variable.2022.03, ~ .x >= 5000000))

Другие вопросы по теме