问题标签 [dt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
410 浏览

ajax - 单击的单元格在本地工作,但在远程闪亮服务器上不起作用--DT

我有一个应用程序可以侦听任何单元格中 DT 中的单元格点击,然后相应地更新绘图。当我在本地运行App() 时,该程序运行良好。但是,当我在闪亮的服务器上部署应用程序时,单击不再触发任何操作。正如我在下面的代码中演示的那样,其他操作侦听器(例如简单的刷新按钮)不存在这种差异。您可以看到刷新按钮条件不存在远程和本地之间的差异input$refreshButton!=0,但使用 length(input$table_cell_clicked)>0触发条件存在差异。

我已经对此错误进行了一些研究,这是我目前所知道的:

"Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience."1)远程部署应用程序时,我在控制台中收到警告。我被告知这与我闪亮服务器中名为 javascript.min.js 和 jquery.min.js 的文件中的设置有关,该文件说c.async="false"我已经在我的服务器上搜索了具有该名称或包含字符串的每个文件async="false",并且将设置更改为sync="true"。但是我没有找到任何具有确切字符串的文件c.async="true"。我可以在浏览器控制台中看到带有这个字符串的文件,它给出了一个相对于 的位置server::port/,但我不知道该文件在我的系统上实际存在的位置,我怀疑它只是由闪亮的服务即时制作的文件。

2)这可能会通过与selectize某些闪亮输入中的功能相关的东西来修复,这可能会导致代码异步执行(?)。我尝试了一些不同的方法,但无法解决问题。

3) Shiny 有一个众所周知的烦恼,通常很难调试。就我而言,如果我能像在本地使用 runApp() 一样看到 server.R 函数的输出,那将非常有帮助。都建议使用对 , 的调用,但是当我将它们添加到下面的代码中时,控制台输出中没有出现任何browser内容。options(shiny.trace = T)我什至尝试使用sink以保存输出到远程服务器上的某个文件,它运行时没有错误,但我在指示的位置没有看到任何文件。如果我至少可以看到这个文件的输出,或者服务器和客户端之间的请求/响应消息,那么调试它会有很长的路要走。

所以这两个问题是:当应用程序被远程部署时,我如何才能看到这些消息/输出?更重要的是,我怎样才能实施修复,这样我在这个项目上的所有辛勤工作(遗憾的是不能透露任何细节)都不会浪费。

我闪亮的应用程序的基本代码如下。

服务器.R:

用户界面

编辑:

我能够通过在定义单元变量后立即放置错误的代码行来获得一些输出,从而导致闪亮的服务器将输出转储到 javascript 控制台。目前这是我知道如何捕获任何输出的唯一方法。但是,输出信息量很大,因为它表明 table_cell_clicked 属性根本没有被导出到远程服务器上,而其他属性,例如 row_last_clicked 是。

这是当服务器在本地运行而没有错误行时我得到的输出(注意它包括 table_cell_clicked 作为功能):

虽然这是使用错误行远程运行时的输出(注意未收到 table_cell_clicked):

0 投票
0 回答
246 浏览

r - 如何存储来自反应式 SQL 查询的数据以进行进一步过滤(DT)并在 ggplot 中显示

我如何将从数据库接收到的数据存储为对象,进一步(如果需要)将使用数据表(DT)过滤并使用显示ggplot

这是代码:

谢谢你的帮助!

[已解决] 问题出在rownames=FALSE

所以对于datatable,它应该是这样的:

干杯

0 投票
1 回答
2045 浏览

r - Shiny DataTable:禁用某些行的行选择

我正在尝试确定是否可以shiny DataTable为某些行禁用行选择。

使用 I 的selection参数DT::datatable可以预先选择行,确定用户是选择行还是列或两者,并完全禁用选择,但我不清楚我是否可以指示要排除的特定行。这可能吗?

问候

0 投票
1 回答
1582 浏览

r - 自动行号(在闪亮中过滤 DT 后)

我想rownames在过滤数据表后从 1,2,3... 重新开始计数。可能吗?

这是简单的代码:

例如,如果我过滤列 x 以从 50-... 中获取值,我希望rownames(在这种情况下)不以 50,51.. 开始,而是以 1,2...

谢谢你的帮助!

0 投票
0 回答
183 浏览

r - 在 HTML 中嵌入 DT 包生成的表格

我正在尝试将 DT 用作 HTML 报告的一部分。到目前为止,我一直在使用 xtable 和 R2HTML R 包。我也是网络技术的新手。

问题是,与 xtable 不同,DT 包创建了整个 HTML 代码,并自动打开浏览器。有一个选项“escape = FALSE”,但我找不到将 DT 对象嵌入 HTML 的任何其他方法。

我希望知道如何将 DT 创建的 HTML 嵌入到其他 HTML 中。在 HTML 开发人员中,这似乎是一项非常基础的技术,但对我来说,很难找到一种方法来做到这一点。

在使用 xtable 和 R2HTML 的情况下,生成新 HTML 的代码如下:

但是,对于 DT,我不知道如何将创建的 HTML 表嵌入到这个 html 中。

提前致谢。

0 投票
5 回答
36775 浏览

r - 删除“搜索”选项,但保留“搜索列”选项

我想从我的应用程序中删除“全局搜索”选项,但保留“列搜索”选项。有任何想法吗?我尝试过不同的参数,比如searching=FALSE, filtering='none'......这些都不能正常工作。

我的代码:

server.R:

ui.R

和有助于理解我的问题的图片:

在此处输入图像描述

0 投票
1 回答
2349 浏览

r - 使用 DT 包在数据表中排序因子

我有想要以 5% 的增量显示的数据,例如 5-10%、10-15% 等。为此,我有一个数据框将它们存储为一个因子,级别为范围,标签是要显示的范围。例如,级别 12.5 将标记为 10-15%。

但是,我无法使用数据表正确排序。

在此处输入图像描述

如您所见,它似乎是对字符串的第一个数字进行排序,而不是按因子的级别排序。

关于如何让数据表对因子水平而不是字符串进行排序的任何想法?(除了在将数据框传递到数据表之前对其进行排序 - 我希望通过单击排序箭头在任一方向上正确排序)

0 投票
1 回答
35767 浏览

r - DT 数据表中的列对齐

在我的shiny应用程序中,我正在使用库中的datatable函数DT来构造一个表格并希望将列对齐在中心。我可以使用formatStyle('column', textAlign = 'center'),但它只影响列体而不影响标题。

0 投票
1 回答
6853 浏览

r - 在闪亮的应用程序中更新数据而不刷新整个应用程序

shiny我有一个使用 R库构建实时数据可视化的应用程序。我使用reactivePoll函数从文件中定期重新加载数据。我不喜欢的是,每当数据重新加载时,整个应用程序都会刷新。

因此,例如,如果我有DT带有选择的表输出并且我使用此选择input$table_rows_selected,它会在数据重新加载时重置,NULL这根本不是用户友好的。

总体上是否可以在不中断用户的情况下更改数据输出?

更新。

这可以通过任何其他用于显示表格的包googleVis或其他包来实现吗?

工作示例。

我从@NicE 答案中获取了这个示例并添加了 id 列。关键是@NicE 答案是可以的,如果在该行由行号标识时需要选择某行。

现在假设当该行由某个 id 值标识时,我需要选择该行。也就是说,如果我选择 id 等于 b 的行,那么下次重新加载数据时,我希望选择具有相同 id 值的行。

0 投票
1 回答
122 浏览

r - 带有 DT 包的 navbarMenu 中的反应式 tabPanel

我想用响应式 tabPanel/tabPanels 创建一个简单的应用程序,这将取决于值selectInput(我已经在这里找到了一个解决方案)。此外,在此小部件中选择一个值后,我将看到不同数量的 tabPanel,它们也应该用作过滤器。例如,在我的应用程序中,我使用diamonds数据集。如果我选择“非常好”这个词,我将看到一个数据集,其中所有行都具有该值。在它的顶部,我还将看到color过滤数据集中的所有唯一值。我想要实现的是有可能使用上面的 tabPanels 再次过滤。