如何在使用DT包生成的单元格中嵌入图像,以便使用闪亮的应用程序显示?
我的例子是基于这个问题R闪亮:我如何将本地图像放在闪亮的表格中
下面的示例代码不显示图像,而只显示网址.
# ui.R
require(shiny)
library(DT)
shinyUI(
DT::dataTableOutput('mytable')
)
# Server.R
library(shiny)
library(DT)
dat <- data.frame(
country = c('USA', 'China'),
flag = c('<img src="test.png" height="52"></img>',
'<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Flag_of_the_People%27s_Republic_of_China.svg/200px-Flag_of_the_People%27s_Republic_of_China.svg.png" height="52"></img>'
)
)
shinyServer(function(input, output){
output$mytable <- DT::renderDataTable({
DT::datatable(dat)
})
})
Run Code Online (Sandbox Code Playgroud) 我已经创建了一些网络应用程序,使用Rook
它可以在端口8000监听我的网络IP(192.168.xx.xx).我办公室内的每个人都可以http://192.168.xx.xx:8000/page_name
在浏览器中输入它们.我需要监控这些页面的使用情况,并想知道如何获取连接到它们的网络IP地址.
我在网络开发方面没有经验,而且从迄今为止所做的研究来看,使用客户端代码似乎JavaScript
很难(几乎不可能)实现这一点,(如果我错了,请纠正我).所以,我的问题是:有没有办法在Rook应用程序中使用服务器端代码获取网络客户端ip?(如果需要,我愿意更改网络服务器,任何解决方案都赞赏).
如果我的问题看起来令人困惑,请提前致谢和抱歉...特别是我不确定是否需要其他标签.
编辑:我也会接受使用不同于Rook
(但仍在R
)的东西的答案
编辑2:我在此链接后设置了Shiny Server .我正在配置服务器,以便获得access_log
它,根据@Thell,包含我需要的信息.在shiny-server.conf
我已经添加了相关声明,现在是:
run_as shiny;
server {
listen 3838;
location / {
site_dir /var/shiny-server/www;
log_dir /var/shiny-server/log;
directory_index on;
}
}
access_log /home/michelec/log.txt;
Run Code Online (Sandbox Code Playgroud)
最后一行应该告诉有光泽将access_log写入我的主文件夹.然而,没有任何事情发生,日志仍为空白.根据这里,在Formats部分,我应该收到以下日志之一:
default ':remote-addr - - [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"'
short ':remote-addr - :method :url HTTP/:http-version :status :res[content-length] - :response-time ms'
tiny ':method :url :status :res[content-length] - :response-time ms'
dev concise …
Run Code Online (Sandbox Code Playgroud) 我在理解会话如何在闪亮服务器中工作时遇到了一些麻烦.我假设当用户关闭浏览器时会话结束,但是,通过使用print(session$isClosed())
服务器函数我FALSE
在开始时得到响应(那么没关系)然后当我关闭浏览器时没有任何反应.谁能给我一些关于闪亮服务器会话的线索?我想存储特定于会话的图,让用户只下载他们的图.
我有一个 R Shiny 应用程序,我想使用开源解决方案托管它以支持大约 50 个并发用户。我遇到了 RStudio 的 Shinyserver,它可用于将闪亮的应用程序部署到网络。我想使用shinyserver的开源版本。
文档说我们可以使用简单的调度程序来定义并发连接数。
Simple Scheduler 是 Shiny Server 开源版本中唯一可用的调度程序。它将单个 R 进程与单个 Shiny 应用程序相关联。此调度程序接受一个参数,该参数指定最大并发会话数。一旦达到此数字,尝试在此应用程序上创建新会话的用户将收到 503 错误页面。
简单调度程序的文档说,
simple_scheduler 一个基本的调度程序,它将为每个应用程序生成一个单线程 R 工作线程。如果未指定调度程序,则这是默认调度程序。
它说开源 Shinyserver 支持单个 R 进程,但同时它提到每个应用程序将有 1 个单线程 R 工作线程。那么如果我想为 1 个应用程序支持 50 个并发用户,我该如何实现呢?我是否需要在同一台服务器上创建应用程序的 50 个实例,还是由 50 个工作线程为应用程序的一个实例提供服务?
另外提到的默认并发连接数是 100。最大是多少?
有人可以解释一下我们该怎么做吗?
只是想知道是否有技巧/方法可以缓存通过我们闪亮的应用程序生成的图.
背景:
我们正在做一些计算密集型计算,最终导致绘图.我已经缓存(使用memoise)完成的计算,全局闪亮,但渲染绘图仍需要大约0.75秒.我只是想知道我们是否可以通过消除渲染图像所花费的时间以及是否有光滑的方式来减少时间.
更多细节:
我正在使用网格来创建绘图(在这种情况下是热图.理想情况下,将缓存设置为基于磁盘,因为在内存中存储绘图不会扩展.
谢谢!-Abhi
是否有变量或方式查询正在运行的RStudio Shiny网页以显示正在运行的服务器的版本?例如shiny-0.10.1
在网页上显示类似的内容.
有任何想法吗?
注意:我已经在有光泽的googlegroups和SO中阅读了关于此对象的几乎所有讨论.
我需要一个指示器,显示闪亮的服务器正忙.我曾尝试过闪亮的孵化器,但问题是我无法为进度条设置最大值.我不想要这样的东西:http://shiny.rstudio.com/gallery/progress-example.html 我需要的是:1-显示繁忙的指示器消息和条形图(即只是一个简单的动画条,只要服务器正在计算,就不需要显示填充条 - 无论您正在查看哪个选项卡,都会显示它.(不仅在相关标签中,而且在标签集的顶部)
谢谢
我正在将R Studio Server与R Shiny结合使用,在Ubuntu 16.04上运行.一切正常.我想要保护R Shiny仪表板(用户名+ pw),我正在考虑建立一个与AWS Cognito通信的小网页来验证用户.
我找不到任何关于这种组合的文档(Shiny + Cognito),但确实找到了一些关于R Shiny Authentication(使用NGINX + Auth0)和Cognito(例如与NodeJS结合使用)的文档.
Shiny和Cognito(例如PHP或Node JS)的组合是逻辑和安全的吗?什么是最好的方法:一个简单的网页与一些PHP,或一个Node JS应用程序,其中包含Shiny?
我意识到这个问题相当广泛,但是因为我确信我不是唯一一个在这个问题上走来走去的人,所以我仍然要求所有人都能从可能的解决方案中获益.
我没有一个可重复的例子,因为问题更多的是模块如何工作.我试图了解如何将一些反应函数从一个模块传递到下一个模块.我在过去收到过有关使用ObserveEvent的回复,但是当我在一个模块中使用反应值来在另一个模块中执行某些其他操作时它们似乎无法工作
module1 <- function(input, output, session){
data1<-reactive({
#some reacttive funcion that produces an output
})
data2<-reactive({
#some reacttive funcion that produces another output
})
return(list(data1,data2))
}
module2 <- function(input, output, session,data1){
observe( data1(), {
#perform some other functions here using data1().e.g reading or parsing data
})
}
Run Code Online (Sandbox Code Playgroud)
所以基本上我有一个module1,它返回data1和data2的两个输出
我想在模块2中使用data1的值,并使用该值执行一些新操作.
我在这里看了类似问题的其他答案,但我仍然不理解它们.如果有人可以帮助我更清楚地解释这个概念,那将非常有用,感谢您的帮助
我已将dockerized闪亮应用程序托管在虚拟机(16G内存和100G磁盘空间)上的Shinyproxy服务器上。该应用程序适用于20多个并发用户。据我所知,shinyproxy的工作方式是为每个用户创建一个docker实例。因此,从理论上讲,它们不应相互干扰。
我的问题是有关并发用户如何消耗服务器的内存和磁盘空间。
为了提高应用程序的响应速度,我的应用程序将所有数据加载到内存中。每个实例是否都有自己的数据副本?说,如果我加载的数据是100 mb。对于20个并发用户,仅用于数据加载的服务器内存就必须至少2GB?如果每个Docker实例为1GB,那么对于20个并发用户,服务器上的总内存至少需要为20GB?这样行吗?
那闪亮的服务器专业版呢?如果我将应用程序托管在Shiny Server Pro上而不是Shinyproxy,服务器上的应用程序是否仅加载一次数据,每个用户都可以使用自己的会话访问数据?打开一定数量的并发会话时,用户是否看到其会话速度变慢?
我是闪亮的应用程序部署新手。如果有人可以在这些概念上澄清我,请多加赞赏。