2014-10-29 14 views
10

Ein gutes Beispiel für meine Frage ist in der Movie Review Beispiel in der Shiny Gallery hier freigegeben“Jahr, das zwischen 1940 und 2014 Hier reicht der Code für sie aus dem ui.RFormatierung Nummer Ausgabe von sliderInput in glänzenden

sliderInput("year", "Year released", 1940, 2014, value = c(1970, 2014))

Sie, dass th bemerken Die Formatierung der Jahre, in denen Sie den Schieberegler verwenden, hat die Form:

"1,940" "2,014" mit einem Komma, das die erste Ziffer von den letzten drei trennt.

Ich weiß, dass man dateRangeInput in Shiny verwenden kann, aber dies erfordert die Variable in einem Datumsformat. Für Datenvariablen, die einfach Zahlen sind, die sich auf Jahre wie dieses Beispiel beziehen, gibt es eine einfache Möglichkeit, die Zahlenausgabe zu formatieren, um das Komma zu entfernen? Ich kann das nicht herausfinden, etwas, das einfach erscheint.

+0

Es wäre hilfreich, wenn Sie Ihre akzeptierte Antwort aktualisieren können, da 'format' veraltet. – zx8754

Antwort

27

Neuere Versionen von glänzenden Wurf der folgende Fehler, wenn man ein format Argument verwendet:

Das format Argument sliderInput veraltet. Verwenden Sie stattdessen sep, pre, und post. (Last in Version 0.10.2.2 verwendet)

nun das bevorzugte Argument ist offenbar sep = ""

+0

Es ist eine "Nachricht", kein Fehler. (Vorläufig wird in zukünftigen Versionen, die das veraltete Argument verwenden, möglicherweise ein Fehler werden.) –

+0

Danke, Duhaime. Ich habe versucht Format = "####" und das Jahr kam immer noch "2.015" statt "2015". Durch den Wechsel zu sep = "" wurde dieses Problem behoben. – JerryKur

+1

Ich benutze glänzende 0.14 und, obwohl 'sep = "" 'das Komma entfernt, bleibt eine merkliche Lücke, wo das Komma war. – coip

2

HINWEIS: Diese Antwort wurde für ältere Versionen von shiny geschrieben. Wenn Sie die Version 0.11 oder höher verwenden, lesen Sie stattdessen die Antwort von @duhaime.

In der sliderInput fügen Sie ein format="####" Argument hinzu. Dadurch wird das Komma entfernt.

Während es seit Jahren keinen Sinn ergeben würde, können Sie auch das Argument format verwenden, um z. B. zu steuern, wie Dezimalzahlen angezeigt werden. # zeigt an, dass eine Nummer angezeigt werden sollte, wenn sie vorhanden ist, und 0 gibt an, dass eine Nummer angezeigt werden soll, falls vorhanden, und eine 0, wenn sie nicht vorhanden ist.

Zum Beispiel "####.00" zeigt die Nummer mit zwei Dezimalstellen, kein Komma, aber wird nicht die Tausende zeigen, wenn es nicht da ist. Bei diesem Format würde die Zahl 32,6 als 32,60 angezeigt.

+0

Danke - nur für die Referenz von anderen, das funktionierte für mich, wenn ich die #### in Anführungszeichen setzte, aber nicht ohne Anführungszeichen. d. h. 'format =" #### "' – jalapic

+0

@jalapic Entschuldigung, ich habe die Anführungszeichen zu der Antwort hinzugefügt. –