【发布时间】:2018-09-01 07:06:15
【问题描述】:
很遗憾,我无法使用我的实际 data.frame,因为它不是我的并且受版权保护,但我会尽力解释
我有一个 data.frame,其中包含一个具有唯一字符串的列。 当我在 Rstudio 控制台中执行 datatable(mydf) 时,它会在查看器中显示正确的表格。但是,当我在闪亮时做同样的事情时,我会收到以下警告:
警告[<-.data.frame(*tmp*, , j, value = list("ECDTM-12 Trimmed eTAG truncated after Fn F232C No Stop CRLF2 transcript variant 1 NM_022148_3", :
提供了 10 个变量来替换 1 个变量
基本上它的作用是采用该列中的第一个字符串“ECDTM-12 Trimmed eTAG truncated after Fn F232C No Stop CRLF2 transcript variant 1 NM_022148_3”并用该字符串覆盖该行中的所有其他字符串,而不是显示什么这些行实际上包含
一些可能有用的代码:
library(shiny)
library(shinythemes)
library(shinycssloaders)
library(dplyr)
library(readr)
library(xlsx)
library(openxlsx)
library(ggplot2)
library(reshape2)
library(ggthemes)
library(DT)
set.seed(1)
UI函数中的代码:
fluidRow(column(12, align="center", withSpinner(dataTableOutput("partTables")
服务器函数中的代码:
Lib_P1_P2 <- reactive(if(LibName() == "1.1A" | LibName() == "1.1B" | LibName() == "2.1"){readRDS(paste0("data/",input$library," P1_P2.rds"))})
output$partTables <- renderDataTable({
datatable(Lib_P1_P2(),options=list(pagelength=10), rownames = FALSE, escape = FALSE)
})
看到这个问题后,我添加了 set.seed(1) 和 escape=FALSE: R Shiny renderDataTable issue 但这也没有用..
如果我遗漏了任何重要信息,请告诉我,我很乐意提供。 我是stackoverflow的新手,所以请原谅我的新手。
【问题讨论】:
-
尝试让
renderDataTable()直接返回您的data.frame,而不是先通过Datatable传递它。 shiny example of integrating with data tables 就是这样做的。 -
这向我显示了正确的表,现在有正确的行,但我使用 datatable 的原因是为了选项,比如将 pagelength 设置为 10...所以你认为问题是datatable 正在读取我的 data.frame 的方式?
-
将
renderDataTable替换为DT::renderDataTable,将dataTableOutput替换为DT::dataTableOutput,以确保使用了正确的命名空间。这些函数也存在于shiny包中 -
添加 DT:: 导致我的行再次相同
-
你是什么意思“再次相同”?
DT::renderDataTable({datatable(...)})应该为您提供与 RStudio 控制台中几乎相同的表。
标签: shiny