2017-04-10 4 views
0

Ich habe diese data.frame und ich möchte formatiert Paket verwenden, um eine andere Farbe zu jedem Namen zuweisen, wobei "Bob" = "Blau", " Ashley "=" Red "etc. Irgendwelche Ideen?R Formattable-Paket - Ändern von Farben nach Zeile Wert in Spalte mit Zeichen Vektor

Ich beginne gerade mit r Programmierung, aber ich habe besonders Probleme mit formatable Paket, da es sehr wenige Beispiele gibt, und die Dokumentation ist auf numerische Werte konzentriert.

df <- data.frame(
    id = 1:10, 
    name = c("Bob", "Ashley", "James", "David", "Jenny", 
      "Hans", "Leo", "John", "Emily", "Lee"), 
    age = c(48, 47, 40, 28, 29, 29, 27, 27, 31, 30), 
    test1_score = c(18.9, 19.5, 19.6, 12.9, 11.1, 7.3, 4.3, 3.9, 2.5, 1.6), 
    test2_score = c(9.1, 9.1, 9.2, 11.1, 13.9, 14.5, 19.2, 19.3, 19.1, 18.8), 
    stringsAsFactors = FALSE) 

Ich habe so weit, mit einem Wert, aber mit dem Rest strugling:

name = formatter("span", style = x ~ ifelse(x == "Bob", 
     style("background-color" = "blue", display = "block", "border-radius" = "4px", font.weight = "bold"), NA)))) 

wie kann ich andere Argumente aus dieser Spalte hinzufügen, wie Sie mit formatStyle in DT-Paket zu tun.

%>% 
    formatStyle(
    'name', 
    backgroundColor = styleEqual(c('Bob', 'Ashley'), c('blue', 'red')) 

Antwort

0

Sie können mit dem Argument target = 'row' in formatStyle() die vollständige Reihe anstelle einer einzelnen Zelle stylen. Hier

ist der .Rmd Code Chunk:

```{r data} 
library(formattable) 
library(DT) 
df <- data.frame(
    id = 1:10, 
    name = c("Bob", "Ashley", "James", "David", "Jenny", 
      "Hans", "Leo", "John", "Emily", "Lee"), 
    age = c(48, 47, 40, 28, 29, 29, 27, 27, 31, 30), 
    test1_score = c(18.9, 19.5, 19.6, 12.9, 11.1, 7.3, 4.3, 3.9, 2.5, 1.6), 
    test2_score = c(9.1, 9.1, 9.2, 11.1, 13.9, 14.5, 19.2, 19.3, 19.1, 18.8), 
    stringsAsFactors = FALSE) 
datatable(df) %>% formatStyle(
    'name', 
    target = 'row', 
    backgroundColor = styleEqual(c("Bob", "Ashley"), c('blue', 'red')) 
) 
``` 

Die Tabelle sieht wie folgt aus: enter image description here

Verwandte Themen