#r
#r
Вопрос:
Пытался отфильтровать числовое значение> 100 для создания нового вектора, но получаю ошибку. безуспешно пытался загрузить пакет dplyr и удалить как.numeric . любая помощь очень ценится.
c1<-c(1000,200) class(c1) [1] «числовые» выходы<-c1%>%filter(c1> как.числовой (100)) Ошибка в методе использования («filter_»): нет применимого метода для ‘filter_’, применяемого к объекту класса «c (‘double’, ‘numeric’)»
Комментарии:
1.
filter
предназначен для фильтрации данных.кадры. Он не работает с векторами. Может быть, вы хотитеdata.frame(c1 = c(1000,200) ) %>% filter(c1 > 100)
Ответ №1:
Как указано @stefan, filter()
функция in dplyr
используется для фильтрации фреймов данных, а не векторов. предложение @stefan заключается в том, чтобы поместить ваш вектор во фрейм данных (в виде одного столбца), а затем использовать filter()
для него функцию.
В случае, если вам абсолютно необходимо сохранить свои данные в векторе, и вы также хотели бы использовать стиль кодирования tidyverse (т. Е. С оператором pipe %>%
), Вы можете использовать keep
функцию внутри purrr
пакета.
library(purrr)
c1 <- c(1000, 200)
keep(c1, ~ .x > 100) # both values in the vector are greater than 100
[1] 1000 200
После всего этого мое личное мнение таково, что база R больше подходит для фильтрации векторов:
c1[c1 > 100]
[1] 1000 200
Комментарии:
1. Большое спасибо за предоставление различных вариантов.