Функция фильтра в dplyr в R не работает
у меня есть фрейм данных в R, как так называемый UK_profiles
:
row.names id name
1 1 8131437 Profile
2 2 8131719 WolverineCompetition
3 4 8132011 www.vaseline.com
4 10 23265829 www.keepingskinamazing.co.uk
5 23 8042743 Mobile
6 24 8043312 Test
7 25 90914664 Join Our Core
8 26 45272695 UDF
9 27 50547829 apps.euro-bureau.eu/fairathon
10 28 50916438 www.benjerry.intashop.com/
11 44 83667343 All Web Site Data
12 45 84556272 UK
используя dplyr, я хочу фильтровать и удалять строки с помощью grepl, используя:
require(dplyr)
UK_profiles.filtered <- filter(UK_profiles, !grepl("Rollup|Microsite|Mobile|Test|tset|Profile|Facebook|Unfiltered|returnurl", name))
тем не менее, я получаю сообщение об ошибке "имя объекта" не найдено.
Я также получаю: в данных.матрица (данные): NAs введен принуждением.
объект " имя " явно находится в фрейме данных. Кто-нибудь может помочь?
4 ответов
чтобы понять, почему это происходит, вы можете воссоздать ошибку довольно легко, выполнив следующие действия.
загрузить dplyr
загрузить dplyr
в новый сеанс с загруженными только библиотеками по умолчанию,filter
будет работать как dplyr
загружается после stats
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
filter(mtcars, mpg < 15)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 14.3 8 360 245 3.21 3.570 15.84 0 0 3 4
#> 2 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
#> 3 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
#> 4 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
#> 5 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4
выгрузить dplyr
это вызывает ошибку, как теперь пытается использовать stats::filter
. Выгрузив stats
мы видим еще одну ошибку, которая есть функция не называется filter
найти
detach("package:dplyr") # Unload dplyr
filter(mtcars, mpg < 15) # Using stats::filter
#> Error in filter(., mpg < 15): object 'mpg' not found
detach("package:stats") # Unload stats
filter(mtcars, mpg < 15)
#> Error in filter(., mpg < 15): could not find function "filter"
перезагрузить статистику и dplyr
убедитесь, что перезагрузить dplyr
после stats
и мы видим, что dplyr
версия filter
снова работает
library(stats)
library(dplyr)
#>
#> Attaching package: 'dplyr'
#>
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
filter(mtcars, mpg < 15)
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 14.3 8 360 245 3.21 3.570 15.84 0 0 3 4
#> 2 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
#> 3 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
#> 4 14.7 8 440 230 3.23 5.345 17.42 0 0 3 4
#> 5 13.3 8 350 245 3.73 3.840 15.41 0 0 3 4
Я думаю, вам нужно как установить с install.packages("dplyr")
а затем используйте library
команда library(dplyr)
загрузить dplyr
в память для использования.
Например,mtcars
dataset является частью dplyr
, Если я установлю только dplyr
и затем введите head(mtcars)
он не находит его. Как только я использую library
команда найдена.