wiederholender Vektor von Buchstaben

8

Gibt es eine Funktion zum Erstellen einer sich wiederholenden Liste von Buchstaben in R?

etwas wie

%Vor%

aber anstelle von NA möchte ich, dass die Ausgabe mit aa, bb, cc, dd fortgesetzt wird ...

    
John Waller 10.02.2014, 15:54
quelle

5 Antworten

7

Es ist nicht schwer, eine schnelle Funktion zusammenzusetzen, um so etwas zu tun:

%Vor%     
A5C1D2H2I1M1N2O1R2T1 10.02.2014, 15:55
quelle
7

Wenn Sie nur eindeutige Namen möchten, können Sie

verwenden %Vor%

Bearbeiten:

Hier ist ein anderer Weg, um sich wiederholende Buchstaben mit Reduce zu erhalten.

%Vor%     
Matthew Plourde 10.02.2014 16:03
quelle
5

Arbeitslösung

Eine Funktion zum Erzeugen von Spaltennamen im Excel-Stil, d. h.

%Vor%

Fehlerhafter Versuch

Am Anfang dachte ich, dass dies am besten clever gemacht werden würde, indem man zu Base 26 umwandelt, aber das funktioniert nicht. Das Problem ist, dass Excel-Spaltennamen nicht Base 26 sind, was lange dauerte. Der Haken ist 0: Wenn Sie versuchen, einen Buchstaben (wie A ) auf 0 abzubilden, haben Sie ein Problem, wenn Sie zwischen A und AA und AAA ...

Eine andere Möglichkeit, das Problem zu veranschaulichen, ist in "Ziffern". In der Basis 10 gibt es 10 einstellige Zahlen (0-9), dann 90 zweistellige Zahlen (10:99), 900 dreistellige Zahlen ... Generalisierung auf 10^d - 10^(d - 1) Zahlen mit d Ziffern für% Code%. In Excel-Spaltennamen gibt es jedoch 26 Namen mit einem Buchstaben, 26 ^ 2 Namen mit zwei Buchstaben, 26 ^ 3 Namen mit drei Buchstaben ohne Subtraktion.

Ich werde diesen Code als Warnung für andere hinterlassen:

%Vor%     
Gregor 10.02.2014 22:54
quelle
3

Es gibt mit ziemlicher Sicherheit einen besseren Weg, aber das ist es, womit ich endete:

%Vor%

EDIT: Es ist mir nicht gelungen, Anandas Antwort zu bemerken, bevor ich diese gepostet habe. Dieser ist anders genug, dass ich es verlasse. Beachten Sie, dass der Indexvektor als Eingabe verwendet wird, im Gegensatz zur Anzahl der Elemente.

    
BrodieG 10.02.2014 16:17
quelle
2

Wahrscheinlich nicht der sauberste, aber leicht zu sehen, was passiert:

%Vor%

EDIT: Matthew gewinnt, hands-down:

%Vor%     
Carl Witthoft 10.02.2014 16:57
quelle

Tags und Links