Maison  >  Questions et réponses  >  le corps du texte

Impossible de trier les variables dans les colonnes du dataframe lors du rendu réactif

<p>J'ai une colonne de variables dans mes données qui ne sont pas dans le bon ordre et je dois modifier leur ordre pour afficher correctement la visualisation. </p> <p>J'ai fourni un exemple reproductible pour faciliter la compréhension : </p> <pre class="brush:php;toolbar:false;">bibliothèque (réactif) bibliothèque (dplyr) espèce <- c("setosa", "versicolor") df ≪- iris %>% filtre(Espèce %en% espèce) nombres <- c( 100, 300 400, 50) tapez <- rep(nombres, fois=25) df1 <- df %>% muter (type = type) df2 <- df1 %>% mutate(species_type= case_when(Espèce == "setosa" ~ paste0(Espèce,": ", type), Espèce == "versicolor" ~ paste0(type,": ", Espèce), VRAI ~ Espèce )) colonnes <- list(colDef(minWidth = 140), colDef(align = "center")) colonnes <- setNames(colonnes, noms(df2)[2:3]) réactif(df2, colonnes = colonnes)</pre> <p>Je dois trier les types_espèces dans la table rendue afin que le type_espèce avec 50 apparaisse en premier, j'ai une trame de données précalculée dans un ordre similaire à l'exemple ci-dessus. Cependant, j'ai essayé de trier avant le rendu, mais je n'obtiens toujours pas le bon ordre dans le tableau. Que dois-je faire? J'ai essayé de trier, merci beaucoup ! </p>
P粉005105443P粉005105443432 Il y a quelques jours447

répondre à tous(1)je répondrai

  • P粉665427988

    P粉6654279882023-08-15 13:04:29

    Une option consiste à réorganiser les données après les avoir transmises reactable之前,根据type (je ne sais pas pourquoi cela ne fonctionne pas pour vous).

    Remarque : j'ai simplifié les données d'exemple en ne conservant que iris中的Species列和每个Speciesquatre lignes.

    library(reactable)
    library(dplyr)
    
    species <- c("setosa", "versicolor")
    df <- iris[c(1:4, 51:54), ] %>
      select(Species) %>
      filter(Species %in% species)
    numbers <- c(100, 300, 400, 50)
    type <- rep(numbers, times = 2)
    df1 <- df %>% mutate(type = type)
    df2 <- df1 %>
      mutate(species_type = case_when(
        Species == "setosa" ~ paste0(Species, ": ", type),
        Species == "versicolor" ~ paste0(type, ": ", Species),
        TRUE ~ Species
      ))
    
    columns <- list(colDef(minWidth = 140), colDef(align = "center"))
    columns <- setNames(columns, names(df2)[2:3])
    
    df2 %>
      arrange(type) %>
      reactable(, columns = columns)

    La deuxième option consiste à utiliser defaultSorted参数按typeTrier :

    reactable(df2, columns = columns, defaultSorted = "type")

    répondre
    0
  • Annulerrépondre