Filter_at не работает с несколькими столбцами

У меня возникают проблемы при попытке использовать filter_at для фильтрации выбросов из нескольких столбцов в моих данных (если быть точным, последние 9 столбцов, 50:58). Я думаю, что отчасти проблема в том, что я не совсем понимаю, как работает .vars_predicate.

Когда я пытаюсь отфильтровать несколько столбцов, я обычно получаю следующие предупреждения:

Error: .vars_predicate must be a call to all_vars() or any_vars(), not logical

или же

Error: .vars must be a character/numeric vector or a vars() object, not logical

Вот код, который работал для одного столбца [, 50]:

data3  <- data2 %>%
      filter_at(abs(gaze_duration_n1_norm) <2.5)

Как я уже упоминал, у меня есть еще 8 столбцов, которые я хотел бы отфильтровать таким образом. Буду очень признателен за вашу помощь.

Спасибо!!!

Пожалуйста, предоставьте полный рабочий пример данных и кода (это могут быть данные макета).

Merik 23.07.2018 21:12

У вас работает filter_at(.tbl = data2 , .vars = 50:58, .vars_predicate = all_vars(abs(.) < 2.5 ))?

markus 23.07.2018 21:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
906
1

Ответы 1

OP не предоставил данные для примера, но из сообщений об ошибках можно было догадаться, что это может сработать.

filter_at(.tbl = data2 , .vars = 50:58, .vars_predicate = all_vars(abs(.) < 2.5 ))

Воспроизводимый пример взят из ?filter_at

# You can vary the selection of columns on which to apply the
# predicate. filter_at() takes a vars() specification:
filter_at(mtcars, vars(starts_with("d")), any_vars((. %% 2) == 0))

Спасибо, теперь работает отлично. Я просто до сих пор не совсем понимаю аргументы .vars () и .vars_predicate (), поэтому я не мог заставить функцию работать самостоятельно.

PrisLB 24.07.2018 00:17

Рад, что помог. Сделал свой комментарий ответом, поэтому этот вопрос можно считать решенным (если вы принимаете). Читаем ?filter_at; .vars a "... числовой вектор позиций столбцов" и .vars_predicate "Цитируемое выражение предиката, возвращаемое all_vars() или any_vars(). Для некоторой предыстории это, возможно, стоит прочитать: vignette("programming")

markus 24.07.2018 00:27

Отлично, я проверю. Да, этот вопрос можно считать решенным, спасибо!

PrisLB 24.07.2018 00:31

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