2017-10-08 6 views
1

Ich habe einen Datensatz mit Spalten wie Name, zweiter Name, vollständiger Name und Telefonnummer. Ich möchte eine Anweisung erstellen, die Telefonnummern von Personen mit Zweitnamen zurückgibt, die mit einem Buchstaben unter "P" beginnen.Erstellen Sie eine Bedingung in R Studio

Ich habe ein data.frame, die das beginnt mit "Sage" rudern Buchstaben

df <- data.frame(L=letters[1:26]) 
    > class(df) 
    [1] "data.frame" 
    > class(phonebook) 
    [1] "data.frame" 
    > class(phonebook$name) 
    [1] "factor" 
    > class(phonebook$secondname) 
    [1] "factor" 
    > class(phonebook$fullname) 
    [1] "factor" 
    > class(phonebook$TelpNum) 
    [1] "numeric" 
    EXAMPLE DATA 
    name   secondname  fullname  TelpNum 

    Sage   Kafka   Sage Kafka 234234234 

    CUP   Ripley   CUP Ripley 12312325 

Es hat zurückkehren muss:

Sage   Kafka   Sage Kafka 234234234 

Antwort

1

Sie grep verwenden könnte, mit Muster ^[A-O] , bedeutet "Beginnen mit Buchstaben im Bereich von A..O":

phonebook[grep('^[A-O]', phonebook$secondname),] 

Um weitere Bedingungen, beispielsweise hinzufügen, dass TelpNum nicht NA ist, Verwendung grepl statt:

phonebook[grepl('^[A-O]', phonebook$secondname) & !is.na(phonebook$TelpNum),] 
+0

ich auch versuche, Namen zu finden, indem Sie Ihren statment> Telefonbuch über eine Telefonnummer hat nicht [ grep ('[NA]', Telefonbuch $ TelpNum),] 'gibt es zurück [1] Name zweiter Vorname vollständiger Name TelpNum (oder 0-length row.names) aber Wert gesetzt hat NA-Werte, was ist das Problem? – 1010111100011

+0

Wegen der Spalten data.type? – 1010111100011

+0

@xxx Ich habe das zu meiner Antwort hinzugefügt – janos

Verwandte Themen