Wie können wir das teilen einer integer-Zahl in einen Vektor seiner konstituierenden Ziffern in R
Ich denke ein Beispiel macht es klar genug.
Habe ich
a_1 = 6547
und ich möchte eine Funktion zum transformieren von a_1 in den folgenden a_2
a_2 = c(6, 5, 4, 7)
- Dies wurde beantwortet, ein paar mal auf DAMIT. Natürlich, ich kann Sie nicht finden, aber wenn Sie verfolgen, die anderen Fragen nach unten, finden Sie einige, ähhm... kreative Lösungen.
- Gefunden den link: stackoverflow.com/questions/18786432/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konvertieren Zeichen dann gesplittet wird den trick tun
Dieser ist 3-4x so schnell auf meinem Rechner, als bei einem strsplit. Aber die strsplit ist viel eleganter und der Unterschied nimmt mit mehr Vektoren.
Edit: mit Carl Erkenntnis, hier ist eine Allgemeine version.
log10(a)
und mit dem (abgeschnittenen oder abgerundeten) Wert, um die maximale Leistung, die Sie möchten, dividieren Sie durch. Ich schrieb den code für Sie, dass in einigen vorigen Antwort, SO aber können nicht verfolgen Sie unten gerade jetzt.Funktioniert das auch. Es ist langsamer als die anderen Antworten, aber möglicherweise leichter zu Lesen...
Ich glaube, Sie sollten die macht der 10 zu tun. Und recursivly, downgrade dieser macht , fügen Sie den Teil gefunden in Vektor-und entfernen Sie diese, um a_1.
6 x 1000 5 x 100, 4 x 10, 7 x1 .....