微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R闪亮的数据表-当字符列包含很长的字符串时强制行高

如何解决R闪亮的数据表-当字符列包含很长的字符串时强制行高

我正在用 R 构建一个 Shiny 应用程序,并面临此示例代码最能描述的以下问题:

library(shiny)
library(shinydashboard)
library(shinyBS)
library(dplyr)
library(lubridate)
library(DT)

ui <- fluidPage(
  
  mainPanel(
    h3("Table:"),dataTableOutput("sample_table1")
  )
  
)

server <- function(input,output,session) {   
  
  output$sample_table1 <- renderDataTable({  #
    df <- head(mtcars,5)
    
    df$NEW_COL1 <- c("This is an example showing that this row will be displayed with a very wide height because this text is too long","hello","hello")
    
    df$color <- "blue"
    df$city <- "Kansas"
    df$second_color <- "yellow"
    
    df <- datatable(df,filter = 'top',rownames= FALSE,options = list(scrollX = TRUE,searching = FALSE,pageLength = 5
                    )) 
  })
}


cat("\nLaunching   'shinyApp' ....")
shinyApp(ui,server)

如果你运行这个应用程序,你会看到第一行的高度变得疯狂,因为“NEW_COL1”列中的字符串长度太长了。 我的两个问题是:

  1. 无论 NEW_COL1 列中的字符串有多长,有没有办法强制每行的高度为 1(1 的意思是第二行的高度)?

  2. 如果对第 1 点的回答是否定的,我想简单地对该行中的数据进行子字符串化。在这种情况下,是否可以通过将鼠标悬停在表格的单元格上来查看每个单元格中的完整字符串?

我发现的一个以某种方式相关的帖子是以下 How can I reduce row height in DT datatables,但那里提供的解决方案都没有满足我的需要。 谢谢

解决方法

对于第二个选项,您可以使用此 question 中的代码:

install.packages("pacman")

# LOAD LIBRARIES
pacman::p_load(rvest,purrr,xml2,dplyr,stringr)

# TARGET URL
url <- "https://www.mywebsite.com/"

# SPOOF THE USER AGENT TO LOOK LIKE A BROWSER
ua <- httr::user_agent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/88.0.4324.104 Safari/537.36")

# CREATE A PERSISTANT SESSION
my_session <- rvest::html_session(url,ua)

# FIND ALL FORMS IN THE WEB PAGE
unfilled_forms <- rvest::html_form(my_session)

# SELECT THE FORM THAT YOU NEED TO FILL IN
login_form <- unfilled_forms[[1]]

#FILL IN THE FORM
filled_form <- set_values(login_form,username = "myUsername",password = "myPassword")

# SUBMIT THE FORM TO LOGIN
login_session <- submit_form(my_session,filled_form)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。