Comment la couleur des cellules spécifiques dans un bloc de Données / Table en R?
Je voudrais la couleur des cellules spécifiques dans la suite de dataframe. Par exemple, dans le inputval colonne, je voudrais mettre en surbrillance les cellules dans la plage de [0.8, 0.9)
magenta, et les cellules de la même colonne de la plage de [0.7, 0.8)
bleu. De même, j'aimerais que la sortie de la colonne de cellules avec une valeur de 1 à la couleur magenta et ceux avec une valeur de 4 à être de couleur bleue. Pour le reste des cellules dans le dataframe, j'aimerais qu'ils restent blancs.
J'ai le texte suivant reproductible code qui met en ligne uniquement, et me limite à la coloration en magenta et blanc uniquement. Comment puis-je ajouter une autre couleur et le faire par la cellule?
set.seed(123)
df <- data.frame(id = sample(1:100, 20, replace = TRUE),
inputval = sample(seq(0, 1, by=0.01), 20, replace = TRUE),
outcome = sample(1:4, 20, replace = TRUE))
cols <- with(df, ifelse(outcome == 1, 'magenta', 'white'))
library('htmlTable')
htmlTable(as.matrix(df), col.rgroup = cols)
Je me rends compte que la question de l'ajout de différentes couleurs est la ifelse
appel dans with
qui me limite juste à magenta et blanc. Comment puis-je ajouter une autre condition ici?
Même si je sais quelle est la cause de multiples couleur de problème, je suis assez désemparés sur la façon de couleur seulement des cellules spécifiques.
C'est le même exemple que la accepté de répondre à cette question.
Merci!
pertinentes: stackoverflow.com/questions/18663159/...
OriginalL'auteur gbrlrz017 | 2015-07-09
Vous devez vous connecter pour publier un commentaire.
Avez-vous envisagé de
DT
?outcome
, disent les lignes 1, 2, 4 je veux être bleu & lignes 3, 5, 6 au magenta. Serait l'argument deformatstyle
être quelque chose commebackground = styleEqual(c(1,2, 4, 3, 5, 6), c(rep("lightblue", 3),rep("magenta", 3))
? Bien sûr, je ne voudrais pas explicitement écrire les numéros de ligne. J'aurais vecteurblue
stocker les numéros de ligne pour le bleu, et le vecteurmagenta
stocker les numéros de ligne pour magenta.Consultez la documentation: rstudio.github.io/DT/functions.html.
J'ai pu plus facilement mettre en évidence basée sur la valeur de la cellule à la place du numéro de ligne juste comme vous l'avez fait pour la colonne
outcome
. Une fois encore, merci à vous! Cette table est magnifique!!!Comment vous est venue l'ensemble de la table en une seule image? Lorsque j'exporte la table de Rstudio, une partie est manquante.
Vous pouvez définir
options = list(paging = FALSE)
dansdatatable
, ouvrez votretempdir()
, puis ouvrez le code html dans un navigateur et prendre une capture d'écran dans le navigateur à l'aide Nimbus ou d'une autre capture d'écran de l'outil.OriginalL'auteur lukeA
Ma réponse ci-dessous est vraiment stupide.. Ici est la bonne façon:
Cette fonctionnalité est intégrée à
htmlTable
via lecss.cell
argument:Donc, Fondamentalement, vous avez juste besoin de définir une matrice de styles pour chaque cellule:
Il est difficile de dire, à moins que vous échangez en arrière et en avant, mais l'espacement dans ce tableau et celui, similaire, ci-dessous est légèrement différente. Le
inject_div
exemple regarde d'un peu plus centré.Un peu en retard, mais @CyrusMohammadian fait un commentaire sur mon autre réponse, et puisque le commentaire/question est la même que celle-ci, je vais ajouter ici, la réponse plutôt que d'éditer ma réponse qui a été (légèrement) différente de la question.
Tables peuvent être complexes, et chacun a des caractéristiques différentes qu'ils veulent. Je ne pense pas que c'est possible pour Max d'avoir des solutions intégrées pour tous.
Par conséquent, le moyen le plus facile, je pense, serait d' (hackily) injecter du code html/css dans votre tableau (vous pourriez probablement aussi le faire après l'exécution de
htmlTable
, c'est à dire directement dans le code html, mais c'est plus facile je pense):OriginalL'auteur rawr
Pour l'ajout de couleurs, vous avez besoin de plus de conditions, par exemple si vous voulez avoir une couleur différente pour un
outcome
de 1 et uneinputval
:Ce qui devrait la couleur de n'importe quoi avec
outcome == 0
que le blanc, et sioutcome == 1
etinputval == 5
, il sera magenta; les autres seront en rouge.Pour votre autre question, vous pouvez utiliser une combinaison de
rgroup
etcgroup
pour spécifier les lignes/colonnes que vous voulez à la couleur, voir la vignette, ou voir ici: http://cran.r-project.org/web/packages/htmlTable/vignettes/tables.htmlDésolé, vous devez lire la documentation et d'essayer des choses.
OriginalL'auteur Chris Watson