Wie färbt man bestimmte Zellen in einem Datenrahmen / einer Tabelle in R?

8

Ich möchte bestimmte Zellen im folgenden Datenfeld farbig darstellen. Zum Beispiel möchte ich in der Spalte inputval Zellen im Bereich von [0.8, 0.9) magenta und die Zellen in derselben Spalte im Bereich [0.7, 0.8) blau hervorheben. Ebenso möchte ich, dass die Zellen der Ausgabespalte mit dem Wert 1 magenta und die mit dem Wert 4 blau gefärbt sind. Für den Rest der Zellen im Datenrahmen möchte ich, dass sie weiß bleiben.

Ich habe den folgenden reproduzierbaren Code, der nur nach Zeilen hervorhebt und mich nur in Magenta und Weiß einfärbt. Wie kann ich eine andere Farbe hinzufügen, und zwar nach Zelle?

%Vor%

Ich stelle fest, dass das Problem beim Hinzufügen verschiedener Farben mit dem Aufruf ifelse in with zusammenhängt, der mich auf nur Magenta und Weiß beschränkt. Wie kann ich hier eine andere Bedingung hinzufügen?

Obwohl ich weiß, was das Problem mit mehreren Farben verursacht, achte ich ziemlich darauf, wie nur bestimmte Zellen gefärbt werden.

Dies ist das gleiche Beispiel wie die akzeptierte Antwort auf diese Frage .  Danke!

    
gbrlrz017 09.07.2015, 17:00
quelle

3 Antworten

7

Haben Sie DT berücksichtigt?

%Vor%

    
lukeA 09.07.2015, 18:39
quelle
4

Meine Antwort unten ist wirklich dumm .. Hier ist der richtige Weg:

Diese Funktion ist in htmlTable über das Argument css.cell integriert:

  

Mit dem Element css.cell können Sie Ihren Tabellenzellen einen beliebigen CSS-Stil hinzufügen. Wenn Sie einen Vektor als Vektor angeben, wird angenommen, dass die Stile in den Spalten wiederholt werden sollen. Wenn Sie eine Matrix mit derselben Größe wie Ihr x-Argument angeben. Wenn ncol(x) + 1 hat, entspricht die erste Zeile dem Rowname-Stil. Wenn die Größe nrow(x) + 1 ist, wird entsprechend angenommen, dass die erste Zeile die Kopfzeile ist.

Also im Grunde müssen Sie nur eine Matrix von Stilen für jede Zelle definieren:

%Vor%

Es ist schwer zu sagen, wenn Sie nicht hin- und herwechseln, aber der Abstand in dieser Tabelle und dem ähnlichen unten ist etwas anders. Das inject_div Beispiel sieht etwas zentrierter aus.

Etwas spät, aber @CyrusMohammadian hat einen Kommentar zu meiner anderen Antwort abgegeben, und da der Kommentar / die Frage derselbe ist wie dieser, werde ich hier die Antwort hinzufügen, anstatt meine Antwort zu bearbeiten, die für eine (etwas) war. andere Frage.

Tabellen können komplex werden und jeder hat andere Funktionen, die er haben möchte. Ich glaube nicht, dass Max für alle Lösungen integriert sein kann.

Daher denke ich am einfachsten, (hackily) etwas html / css in eure Tabelle zu injizieren (das könntest du wahrscheinlich auch tun, nachdem du htmlTable ausgeführt hast, also direkt im HTML-Code, aber das ist einfacher, denke ich.) ):

%Vor%

%Vor%

    
rawr 29.08.2016 16:00
quelle
3

Um zusätzliche Farben hinzuzufügen, würden Sie mehr Bedingungen benötigen, z.B. Wenn Sie für outcome von 1 und für inputval eine andere Farbe haben möchten:

%Vor%

Das sollte also alles mit outcome == 0 als weiß färben, und wenn outcome == 1 und inputval == 5 , wird es Magenta sein; die anderen werden rot sein.

Für Ihre andere Frage können Sie eine Kombination aus rgroup und cgroup verwenden, um anzugeben, welche Zeilen / Spalten Sie einfärben möchten, siehe die Vignette oder sehen Sie hier: Ссылка

    
Chris Watson 09.07.2015 17:19
quelle

Tags und Links