Was ist eine schnelle, skalierbare Möglichkeit, die ganzen Zahlen 1 bis N in eine entsprechende Folge von Strings "A", "B", ... "Z", "AA", "AB", ... umzuwandeln die gleiche Länge?
Alternativ würde ich mich freuen, wenn etwas den Ganzzahlvektor auf einen Zeichenvektor abbildet, so dass jedes Element des Zeichenvektors die gleiche Anzahl von Zeichen hat. Z.B. 1, 2, ... 27 = & gt; "AA", "AB", ..., "AZ", "BA"
Beispieleingabe:
%Vor%AKTUALISIEREN
Mein hackischer, aber bester Arbeitsversuch:
%Vor%Mehrere nette Lösungen wurden bereits in den Kommentaren gepostet. Nur die von @Gregor hier veröffentlichte Lösung gibt derzeit die bevorzugte Lösung von Ben an.
Die Methoden von @eddi, @DavidArenburg und @G.Grothendieck können jedoch angepasst werden, um das gewünschte Ergebnis zu erhalten:
%Vor%Alle drei ergeben:
%Vor% Dies scheint ein großartiger Kandidat für Rcpp
zu sein. Unten ist der sehr einfache Ansatz:
Das Ergebnis ist genau das, was die Antwort des OPs zurückgibt.
%Vor% Aktualisierte Benchmarks einschließlich @ eddis hervorragender Rcpp
Implementierung:
Wie @DirkEddelbuettel sagt "Rcpp ist kein magisches Pony ..." . Diese Diskrepanzen in der Effizienz zeigen nur, dass, obwohl Rcpp
, oder irgendein Paket für diese Angelegenheit, super genial ist, sie nicht crappy Code reparieren werden. Danke @ededi für das Posten einer richtigen Rcpp
Implementierung.
Tags und Links r