Фильтрация чисел выше определенного порога для нескольких столбцов в 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(>="

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

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
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))

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