Как использовать filter_if для выбора строк, в которых истинна любая из нескольких логических переменных во фрейме данных - PullRequest
0 голосов
/ 10 июля 2019

У меня есть большой фрейм данных, где в строках указаны лекарства с одним или несколькими компонентными непатентованными лекарствами.DF имеет 21 логическую переменную, указывающую на то, что лекарство содержит один из 21 непатентованного лекарства, для которого я хочу отфильтровать.Могу ли я использовать filter_if для определения всех строк, где любая из этих 21 переменных имеет значение TRUE?Предполагая, что могу, я думаю, что у меня проблемы с синтаксисом filter_if.

Вот моя попытка и коды ошибок, которые я получаю.В следующем коде переменные, которые я тестирую, находятся в столбцах «IBUPROFEN»: «BAICALIN / CATECHIN» Это все логические переменные TRUE / FALSE.

> Drug_Table_NamesNumberSML %>%
+   select("IBUPROFEN":"BAICALIN/CATECHIN") %>%
+   filter_if(isTRUE("IBUPROFEN":"BAICALIN/CATECHIN"))

Ошибка в «IBUPROFEN»: «BAICALIN / CATECHIN»: аргумент NA / NaN Дополнительно: Предупреждающие сообщения: 1: In is TRUE («IBUPROFEN»: «BAICALIN / CATECHIN»): NA введеныПринуждение 2: В isTRUE («IBUPROFEN»: «BAICALIN / CATECHIN»): NA введены с помощью принуждения

Я не понимаю, откуда произошла ошибка аргумента NA / NaN, и NA, введенные с помощью предупреждений о принуждении.

Я также не уверен, будет ли это делать то, что я хочу, после устранения этих ошибок / предупреждений.

В итоге я хотел бы получить фрейм данных, содержащий только те строки, которые относятся к 21 препарату, для которого у меня есть логические переменные, которые нужно пометить.

1 Ответ

0 голосов
/ 11 июля 2019

Трудно сказать без образца ваших данных, с которым можно поиграться (пожалуйста, предоставьте немного!), Но я думаю, что filter_all может сработать. Если я правильно понял, что-то вроде этого должно дать вам то, что вы хотите:

Drug_Table_NamesNumberSML %>%
    select("IBUPROFEN":"BAICALIN/CATECHIN") %>%
    filter_all(any_vars(. == TRUE))

Вы можете найти больше примеров использования различных filter функций здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...