2016-03-31 6 views
2

Ich habe einen Datenrahmen mit einer Factor Spalte namens City. Es hat bewertet wie New York und NEW YORK.Wie mache ich die Groß- und Kleinschreibung mit dplyr?

Wenn ich diesen Code ausführen:

group_by(dataframe, City)

ich dieses Ergebnis:

City, Value 
New York, 12 
NEW YORK, 100 

Ich möchte die City Gruppierung Groß- und Kleinschreibung sein, so dass es New York und NEW YORK in die setzen wird gleiche Kategorie.

Kann ich dies mit dplyr tun?

+3

Verwenden 'group_by (tolower (Stadt))' –

+1

@ StevenBeaupré, dass die Arbeiten. Wenn Sie dies zu einer Antwort machen, werde ich es korrekt markieren, sobald der Stapelüberlauf es mir erlaubt. Für einen Bonus, wie kann ich sie in die Kategorie "New York" setzen? – Username

Antwort

3

Wenn Sie wollen group_by uniformierte "Stadt" Kategorien, Sie stri_trans_totitle vom stringi Paket

Aus der Dokumentation verwenden:

Mit stri_trans_totitle, wenn Wort BreakIterator verwendet wird (Standardeinstellung), dann wird der erste Buchstabe jedes Wortes großgeschrieben und der Rest wird in Kleinbuchstaben umgewandelt.

Zum Beispiel:

df %>% 
    group_by(Category = stringi::stri_trans_totitle(City)) %>% 
    mutate(rn = row_number()) 

würde:

#Source: local data frame [4 x 4] 
#Groups: Category [2] 
# 
#  City Value Category rn 
#  (fctr) (int)  (chr) (int) 
#1 New York 12 New York  1 
#2 NEW YORK 100 New York  2 
#3 NeW JerSey 123 New Jersey  1 
#4 NEW JERSEY 111 New Jersey  2