gpt4 book ai didi

在本地工作的 R 脚本不适用于 Shinyapp.io

转载 作者:行者123 更新时间:2023-12-04 10:11:54 24 4
gpt4 key购买 nike

我正在尝试组合一个 R + Shiny 应用程序,该应用程序至少在最初绘制日期数据的直方图。我在 RStudio 的本地系统上运行得很好,但在 Shinyapps.io 中它不起作用。

目前,该应用程序非常简单——用户界面并没有真正做任何事情,数据只是测试数据的一小部分样本。

在 RStudio 中工作正常(绘制一个漂亮的小直方图)。在 Shinyapps.io 上加载时,“标题面板”文本和侧边栏会显示,但一两秒钟后
- 报告错误“'from' 不能是 NA、NaN 或无穷大”或
- 屏幕变灰,脚本停止 (?)
在这两种情况下都没有生成直方图。

让我感到困惑;很想听听是否有人对我出错的地方有任何建议。也许这与 as.Date 有关 - 报告了一个可能类似的问题 here ,无解。

我的两个 Shiny 文件是:

# ui.R

shinyUI(fluidPage(
titlePanel("title panel"),

sidebarLayout(
sidebarPanel(

),

mainPanel(

plotOutput("distPlot")

)
)
))


# server.R
library(shiny)

shinyServer(function(input, output){

output$distPlot <- renderPlot({

text_date <- c("9 March 2006", "31 October 2008", "24 September 2008", "27 February 2009", "19 May 2014", "11 December 2009", "7 August 2013", "8 December 2014", "2 February 2010", "22 December 2014", "20 December 2011", "4 September 2009", "19 December 2013", "10 October 2007", "19 September 2008")

num_date <- as.Date(text_date, format = "%d %B %Y")

#plot a histogram

hist(num_date,
breaks = "years",
format = "%Y",
freq = TRUE)

})

})

showLogs() 没有报告任何错误(或除版本、启动和监听之外的任何错误):

2015-02-22T10:00:50.507273+00:00 shinyapps[32851]: R version: 3.1.2
2015-02-22T10:00:50.509043+00:00 shinyapps[32851]: rmarkdown version: 0.0.0
2015-02-22T10:00:50.507340+00:00 shinyapps[32851]: Shiny version: 0.11.1
2015-02-22T10:00:50.509508+00:00 shinyapps[32851]: knitr version: 0.0.0
2015-02-22T10:00:50.784283+00:00 shinyapps[32851]:
2015-02-22T10:00:50.784285+00:00 shinyapps[32851]: Starting Shiny with process ID: '14'
2015-02-22T10:00:50.792403+00:00 shinyapps[32851]:
2015-02-22T10:00:50.792405+00:00 shinyapps[32851]: Listening on http://0.0.0.0:57429

最佳答案

你有两个问题。首先,您错过了数据中的一些引号。然而,修复并没有改变结果。我复制了您的代码,修复了引号,然后部署了它并得到了相同的结果(在本地工作,但不在 Shinyapps.io 上工作)。

第二个(也是更重要的问题)是不同操作系统处理日期的方式。我将 server.R 的数据部分更改为以下内容:

text_date <- c("2006-03-09", "2008-10-31", "2008-09-24", "2009-02-27", "2014-05-19", "2013-08-07", "2014-12-08", "2010-02-02", "2014-12-22", "2011-12-20", "2009-09-04", "2013-12-19", "2007-10-10", "2008-09-19")

这在本地和shinyapps.io上都有效。所以问题不在于您的程序,而在于如何处理日期。

我认为这个问题可能与个位数日期需要前导零有关,但改变它并没有解决问题。然而,当我用两位数替换月份名称时,它再次在本地和 Shinyapps.io 上工作。因此,shinyapps.io 似乎在将月份名称转换为日期值方面存在一些困难。但是,我不知道为什么会发生这种情况。

更新 :
关注 a lead provided by Fereshteh Karimeddini ,我通过嵌入以下代码修改了文件:
在 server.R 中:
output$dates = renderText({format(num_date, format = "%d %B %Y")})
output$location = renderText({Sys.getlocale(category = "LC_ALL")})

在 ui.R 中:
textOutput("dates")
textOutput("location")

有趣的是,无论是在本地运行还是在 Shinyapps.io 上运行,“日期”输出的结果都完全相同。我原以为我会得到法语或其他语言的月份名称。但是,对于“位置”输出,我得到了不同的结果。
本地:

LC_COLLATE=English_United States.1252;
LC_CTYPE=English_United States.1252;
LC_MONETARY=English_United States.1252;
LC_NUMERIC=C;
LC_TIME=English_United States.1252



在 Shinyapps.io 上:

LC_CTYPE=C.UTF-8;
LC_NUMERIC=C;
LC_TIME=C.UTF-8;
LC_COLLATE=C.UTF-8;
LC_MONETARY=C.UTF-8;
LC_MESSAGES=C.UTF-8;
LC_PAPER=C.UTF-8;
LC_NAME=C;
LC_ADDRESS=C;
LC_TELEPHONE=C;
LC_MEASUREMENT=C.UTF-8;
LC_IDENTIFICATION=C



注意:为了可读性添加了回车。

a bug report在 debian 论坛上(我不知道与 Ubuntu 的关系,这是 Shinyapps.io 使用的)指出 C.UTF-8 不包含月份名称。然而,那是从 2012 年开始的,错误报告说它在最近的版本中得到了修复。此外,如果 Shinyapps.io 上的 C.UTF-8 中确实没有月份名称,那么它不应该能够输出月份名称(它做得很好)。这让我想知道 - 如果它可以输出月份名称,为什么不能读取月份名称?所以我试图让它做到这一点。
在 server.R 中:
text_date = c("09 03 2006")
num_date <- as.Date(text_date, format = "%d %m %Y")
x = format(num_date, format = "%d %B %Y")
output$dates = renderText({x})
renum_date = as.Date(x, format = "%d %B %Y")
output$redates = renderText({format(renum_date, format = "%d %B %Y")})

在 ui.R 中:
sidebarPanel(textOutput("dates")),
mainPanel(textOutput("redates"))

在本地,sidebarPanel 和 mainPanel 显示的内容完全相同:2006 年 3 月 9 日。但是,在 Shinyapps.io 上,mainPanel 显示为 NA。因此,看起来 Shinyapps.io 可以发出但不能接受,至少就月份名称而言。这有多奇怪?

关于在本地工作的 R 脚本不适用于 Shinyapp.io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com