2015-08-28 19 views
5

ich einen Datenrahmen in R haben wie so UK_profiles genannt:Filterfunktion in dplyr in R nicht funktioniert

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 

Mit dplyr Ich möchte mit filtern und Löschen von Zeilen mit Grepl:

require(dplyr) 

UK_profiles.filtered <- filter(UK_profiles, !grepl("Rollup|Microsite|Mobile|Test|tset|Profile|Facebook|Unfiltered|returnurl", name)) 

Ich bekomme jedoch eine Fehlermeldung, dass Objekt 'Name' nicht gefunden wurde.

Ich bekomme auch: In data.matrix (Daten): NAs durch Zwang eingeführt.

Das Objekt 'Name' befindet sich eindeutig im Dataframe. Kann mir bitte jemand helfen?

+4

Haben Sie das Paket 'dplyr' geladen? In R gibt es standardmäßig eine Filterfunktion, die genau den gleichen Fehler ergibt. Nach dem Laden von 'dplyr' (' library (dplyr) ') funktioniert die' filter' Funktion. –

+3

Warum dplyr? 'UK_profiles [! Grepl (" Rollup | Microsite | Mobil | Test | tset | Profil | Facebook | Ungefilterte | returnurl ", UK_profile $ Namen),]' – zx8754

+0

Hi @Pascal. Ja, ich habe das Paket geladen danke. – GKyle

Antwort

30

Es scheint, als ob Sie die stats::filter Funktion erhalten und nicht die dplyr. Verwenden Sie die Notation dplyr::filter, um sicherzustellen, dass Sie die richtige Einstellung erhalten.

d = data.frame(x=1:10, 
name=c("foo","bar","baz","bar","bar","baz","fnord","qar","qux","quux")) 

filter(d, !grepl("ar|ux", name)) 
Error in grepl("ar|ux", name) : object 'name' not found 

dplyr::filter(d, !grepl("ar|ux", name)) 
    x name 
1 1 foo 
2 3 baz 
3 6 baz 
4 7 fnord 

Sie brauchen nicht einmal library(dplyr) dafür zu tun, um zu arbeiten - was Sie tun müssen dplyr obwohl installiert.

Dies funktioniert für Funktionen aus jedem Paket.

+0

Weißt du, warum das passiert? –

Verwandte Themen