Если я сделаю это
data %>% filter(primary.name == "Down syndrome" | other.names == "Down syndrome")
Я получаю всю строку данных. Но что, если мне нужны данные только в одной из ячеек (т. е. той, что имеет заголовок «dx»)?
Я пробовал это:
data$dx %>% filter(primary.name == "Down syndrome" | other.names == "Down syndrome")
Но получил эту ошибку:
Error in UseMethod("filter_") :
no applicable method for 'filter_' applied to an object of class "factor"
Мы можем pull
столбец после filter
шага
library(dplyr)
data %>%
filter(primary.name == "Down syndrome" | other.names == "Down syndrome") %>%
pull(dx)
Или другой вариант — summarise
(который теперь может возвращать более одной строки)
data %>%
summarise(dx = dx[primary.name == "Down syndrome" |
other.names == "Down syndrome"]) %>%
pull(dx)
Однако для понимания кода лучше использовать filter
Если мы используем
data$dx %>%
...
rhs
из %>%
получает только значение этого столбца, и он никак не может получить доступ к столбцу «primary.name» или «other.names» в наборе данных.
Эй, быстрый вопрос - теперь, когда я вытащил данные, вы знаете, как их редактировать? Я разместил вопрос, за который сильно проголосовали. Если вы ответите там, я приму ваш ответ и на этот вопрос!
@Г.Т. Конечно, я проверю это
@Г.Т. Пожалуйста, проверьте, работает ли решение, размещенное там, или нет. Спасибо
Спасибо!! Это первый ответ, который я получил от сообщества R о переполнении стека, который был действительно полезным, а не просто ругал меня!! Приму как ответ.