2016-08-02 14 views
-1

Der Datensatz, der in vielen R-Tutorials verwendet wird, hat eine erste Spalte ohne Header, die die Namen der Autos, je nach Marke und Modell auflistet.getrennt in tidyr, Fehler bitte geben Spalte Name

Ich habe versucht, die Marke und das Modell des Autos zu trennen.

Zuerst habe ich eine Spalte der ersten, kopflosen Spalte namens "names" erstellt.

> mtcars$names <- rownames(mtcars) 

> rownames(mtcars) <- NULL 

Dies gab mir eine Spalte, die ein Zeichen Vektor mit den folgenden Ergebnissen waren:

> mtcars$names 

Mit der folgenden Ausgabe:

[1] "Mazda RX4"   "Mazda RX4 Wag"  
[3] "Datsun 710"   "Hornet 4 Drive" 

etc

Ich habe dann versucht, diese :

separate(mtcars, colname = names, into = c('make', 'model') 

und bekamen folgende Fehlermeldung:

Fehler: Bitte Spaltennamen

+2

Das Argument ist 'col', nicht' colname'. – aosmith

+0

Wenn das Problem auf dem ersten Leerzeichen auftritt, können Sie 'extra =" Zusammenführen "' in 'separate' verwenden, anstatt die Regex auszuarbeiten. Siehe [hier] (http://stackoverflow.com/questions/37126634/r-tidyr-separate-only-first-n-instances/37126832) – aosmith

Antwort

0
separate(mtcars, col = names, into = c('make', 'model'), sep = '') 

Der „Vaillant“ liefert keine make Beschreibung, aber ich denke, das ist, was Sie fragen.

+0

Dies wird es tun, aber um es vollständig zu machen, wenden Sie sich bitte an das eigentliche Problem von OP versucht, einen falschen Argumentnamen zu übergeben ('Spaltenname', wo er' col' sein sollte), wodurch der Fehler ausgelöst wurde. –

+0

[http://stackoverflow.com/questions/8299978/splitting-a-string-on-the-first-space] Hier können Sie eine viel bessere Lösung finden – Tim91

+0

Wie können Sie sagen, dass die Valiant hatte keine Beschreibung erstellen. Um zur Arbeit getrennt zu werden (zusammen mit extra = 'merge') musste ich diese Zeile löschen. –