Rumah  >  Soal Jawab  >  teks badan

Tidak dapat mengisih pembolehubah dalam lajur bingkai data apabila memaparkan boleh bertindak balas

<p>Saya mempunyai lajur pembolehubah dalam data saya yang tidak berada dalam susunan yang betul dan saya perlu menukar susunannya untuk memaparkan visualisasi dengan betul. </p> <p>Saya telah menyediakan contoh yang boleh dibuat semula untuk memudahkan pemahaman: </p> <pre class="brush:php;toolbar:false;">library(reactable) perpustakaan(dplyr) spesies <- c("setosa", "versicolor") df <- iris %>% penapis(Spesies %dalam% spesies) nombor <- c( 100, 300,400, 50) taip <- rep(nombor, kali=25) df1 <- df %>% mutasi(jenis = jenis) df2 <- df1 %>% mutate(species_type= case_when(Spesies == "setosa" ~ paste0(Spesies,": ", type), Spesies == "versicolor" ~ paste0(type,": ", Species), BENAR ~ Spesies )) lajur <- senarai(colDef(minWidth = 140), colDef(align = "tengah")) lajur <- setNames(lajur, nama(df2)[2:3]) boleh bertindak balas(df2, lajur = lajur)</pra> <p>Saya perlu mengisih spesies_jenis dalam jadual yang diberikan supaya spesies_jenis dengan 50 muncul dahulu, saya mempunyai rangka data prakiraan dalam susunan yang serupa dengan contoh di atas. Walau bagaimanapun, saya cuba mengisih sebelum memberikan tetapi masih tidak mendapat susunan yang betul dalam jadual. Apa patut saya buat? Saya cuba menyusun, terima kasih banyak! </p>
P粉005105443P粉005105443432 hari yang lalu446

membalas semua(1)saya akan balas

  • P粉665427988

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

    Satu pilihan ialah menyusun semula data selepas menghantarnya reactable之前,根据type(tidak pasti mengapa ini tidak berfungsi untuk anda).

    Nota: Saya memudahkan data contoh dengan menyimpan hanya iris中的Species列和每个Speciesempat baris.

    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)

    Pilihan kedua ialah menggunakan defaultSorted参数按typeIsih:

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

    balas
    0
  • Batalbalas