2017-02-22 4 views
1

Dans un projet de Data Science à mon université, on nous a demandé de créer un arbre de décision pour modéliser quels clients sont susceptibles de répondre ou non à une campagne. L'une des exigences de la tâche était de créer une matrice de confusion, que j'ai convertie en une trame de données. C'est le cadre de données que j'ai généré.Comment changer la famille de police dans un formatable en R?

confusionMatrixCARTDecisionTree <- data.frame("Number Predicted to Not Subscribe" = 
    c(36006, 542), "Number Predicted to Subscribe" = c(3554, 1086), 
    row.names = c("Number of Individuals that Subscribed", 
    "Number of Individuals that didn't Subscribe")); 

J'ai ensuite utilisé ce code pour le convertir en formatable.

formattableConfusionMatrixCARTDecisionTree <- formattable(
    confusionMatrixCARTDecisionTree, align = "c", 
    list("Predicted Number not Subscribing" = color_tile("white", "yellow"),  
    "Predicted Number Subscribing" = color_tile("yellow", "white"))); 

Et puis une fonction que je trouve ici, https://github.com/renkun-ken/formattable/issues/26, pour mettre le formattable dans un rapport pdf. Cependant, ce que j'essaye de faire maintenant est de changer la famille de police en CMU Serif de la matrice de confusion afin qu'elle soit cohérente avec le fichier LaTeX. Je travaille sur la façon de changer la police d'une colonne, comme ceci:

formattableConfusionMatrixCARTDecisionTree <- 
    formattable(confusionMatrixCARTDecisionTree, list("Predicted Number not Subscribing" = 
    formatter("span", style=style("font-family" = "CMU Serif")))); 

Cependant, j'ai lu dans la documentation ici https://cran.r-project.org/web/packages/formattable/formattable.pdf et je l'ai recherché en ligne, mais je ne peux pas trouver un moyen de changer la police de le titre ou les noms de lignes. Si quelqu'un avait une solution à cela, je serais éternellement reconnaissant! Je serais également extrêmement heureux si quelqu'un connaissait du code qui changerait la famille de police de la table entière.

Remarque: Je comprends qu'une question relative à la modification de l'apparence de l'en-tête a été posée ici How to change appearance of table header row with R formattable package, cependant, cette question n'a pas été résolue et ne traite pas de la question de la modification de la famille de polices.

Nous vous remercions de votre temps! Je crois vraiment que toutes les réponses aideront les autres à utiliser ce super paquet.

Editer: Solution grâce à Ali Khalaj et Al-Mothafar. La réponse à cette question était de changer le CSS de la table format_table. Le paramètre 'table.attr' vous permet de lier format_table à une classe CSS personnalisée (que vous pouvez écrire). Cela vous permettra de changer sa police et diverses autres fonctionnalités. Une autre solution consiste à ajouter un conteneur de style, qui est bien détaillé ici how to colour different Rmarkdown kable tables in different colour. Bonne chance en utilisant cet excellent paquet!

Répondre

1
@font-face { 
    font-family: 'Name'; 
    src:url('../fonts/Name.eot?#') format('eot'),url('../fonts/Name.woff') format('woff'),url('../fonts/Name.ttf') format('truetype'); 
} 
html { 
    height:100% 
} 
body{ 
    font-family:Name,Tahoma,tahoma,Arial; 
    background-color:#fafafa; 
    height:100% 
} 
+0

Cher Ali, merci beaucoup pour votre réponse rapide! Je suis assez nouveau à R, donc je ne suis pas familier avec ce type de syntaxe. Cependant, j'ai rapidement googlé le tag @ font-face et cela semble avoir beaucoup de mérite! Cependant, je ne suis pas sûr de savoir comment l'implémenter avec mon code actuel. Dois-je créer un fichier séparé avec le CSS? –

+0

Vous êtes le bienvenu, oui vous pouvez, mais si vous voulez utiliser la police pour tous les navigateurs, vous devez utiliser tout le format d'une police comme ci-dessus. –

+0

Merci pour votre aide Ali et Al-Mothafar, je l'apprécie vraiment! J'ai ajouté la solution et répondu à la question! –

0

Solution grâce à @Ali Khalaj et @ Al-Mothafar. La réponse à cette question était de changer le CSS de la table format_table. Le paramètre 'table.attr' vous permet de lier format_table à une classe CSS personnalisée (que vous pouvez écrire). Cela vous permettra de changer sa police et diverses autres fonctionnalités. Une autre solution consiste à ajouter un conteneur de style, qui est détaillé ici comment colorer différentes tables karts Rmarkdown de couleur différente. Bonne chance en utilisant cet excellent paquet!