web-dev-qa-db-fra.com

Comment formater tous les numéros dans une table en U en utilisant Kable?

Code output

Je dois être capable de réduire ou de simplifier les chiffres dans ce tableau. Je ne veux que jusqu'à 4 décimales montrées et si possible uniquement des entiers si le nombre est un nombre entier. Comment pourrais-je accomplir cela?

library(kableExtra)
x = c(1, 1, 1, 1, 1, 1, 1, 1, 1)
y = x/2
z = x/3
a = data.frame(x, y, z)
b = t(a)
c = kable(b, "html", align = "c") %>%
  kable_styling(full_width = F)
6
LegendOfKass

Utilisez la fonction format() pour convertir les données au nombre minimum de décimales nécessaires pour rendre les données. Utilisation du code du message d'origine:

library(knitr)
library(kableExtra)
x = c(1, 1, 1, 1, 1, 1, 1, 1, 1)
y = x/2
z = x/3

a = data.frame(x = format(x,digits=4,nsmall = 0), 
               y = format(y,digits=4,nsmall = 0), 
               z = format(z,digits = 4,nsmall = 0))
b = t(a)
c = kable(b, "html", align = "c") %>%
  kable_styling(full_width = F)

... et la sortie:

enter image description here

Incorporer les commentaires de Martin Schmelzer, une version obligatée de la même solution ressemble à ceci.

# tidyverse alternative
library(knitr)
library(kableExtra)
library(dplyr)
x = c(1, 1, 1, 1, 1, 1, 1, 1, 1)
y = x/2
z = x/3
data.frame(x,y,z) %>% 
   mutate_if(is.numeric, format, digits=4,nsmall = 0) %>% t(.) %>% kable(.,"html",align = "c") %>% 
   kable_styling(full_width = F) -> c
6
Len Greski