2017-03-08 1 views
0

Je suis en train de données de style ELISA tableau (numérique) comme décrit here et je reçois l'erreur suivante pour le codePas en mesure de table de données de style R Brillant

brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE) 

enter image description here

je la code suivant comme décrit dans la page Web. Quelqu'un peut-il me signaler ce qui me manque ici?

df <- matrix(nrow=8, ncol=12) 
for (i in 1:8) { 
    for (j in 1:12) 
    df[i,j] <- format(as.numeric(elisa65[i,j])/as.numeric(elisa74[i,j]),digits = 4) 
} 

brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE) 
clrs <- round(seq(255, 40, length.out = length(brks) + 1), 0) 
       %>% {paste0("rgb(255,", ., ",", ., ")")} 

DT::datatable(df) %>% formatStyle(names(df), backgroundColor = styleInterval(brks, clrs)) 

ELISA Data Table

+0

'format' renvoie une chaîne, s o vous devez utiliser' as.numeric' avant quantiling – HubertL

+0

Merci! C'était utile. – RanonKahn

Répondre

1

j'ai remarqué deux problèmes dans votre code:

  1. clrs est un personnage et vous n'êtes pas en fait les appels évaluons à rgb
  2. df est un matrix et vous le traitez comme un data.frame dans votre code ci-dessus

Essayez ceci

require(dplyr) 
require(DT) 
df <- matrix(rnorm(8 * 12), nrow=8, ncol=12) 

brks <- quantile(df, probs = seq(.05, .95, .05), na.rm = TRUE) 
clrs <- sapply(round(seq(255, 40, length.out = length(brks) + 1), 0), 
       function(x) rgb(255, x, x, maxColorValue = 255)) 

df <- data.frame(df) 
datatable(df) %>% formatStyle(names(df), backgroundColor = styleInterval(brks, clrs))