Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:GUI的发布速度很快(shiny的替代品?)_R_User Interface_Shiny_Frameworks - Fatal编程技术网

R:GUI的发布速度很快(shiny的替代品?)

R:GUI的发布速度很快(shiny的替代品?),r,user-interface,shiny,frameworks,R,User Interface,Shiny,Frameworks,我正在尝试为我的CRAN包制作一些GUI 一些f函数在本地启动一个带有几个参数的弹出窗口,呈现一些输出,比如在本地启动一个简单的闪亮应用程序 弹出窗口允许轻松选择参数,然后“验证”按钮触发返回带有所选参数的f,如stopApp 我已经用shiny做到了这一点,但我认为结果有点不令人满意,因为shiny应用程序的启动和停止都很慢(我想如果有对象要序列化的话) 我已经看到一些包,比如vdiffr,似乎通过列出要更改的对象来解决这个问题,所以它们只启动一次shiny,用一些选择器来更改所有内容。如果可

我正在尝试为我的CRAN包制作一些GUI

  • 一些
    f
    函数在本地启动一个带有几个参数的弹出窗口,呈现一些输出,比如在本地启动一个简单的闪亮应用程序
  • 弹出窗口允许轻松选择参数,然后“验证”按钮触发返回带有所选参数的
    f
    ,如stopApp
  • 我已经用shiny做到了这一点,但我认为结果有点不令人满意,因为shiny应用程序的启动和停止都很慢(我想如果有对象要序列化的话)

    我已经看到一些包,比如vdiffr,似乎通过列出要更改的对象来解决这个问题,所以它们只启动一次shiny,用一些选择器来更改所有内容。如果可能的话,我想避免这种解决方案


    所以问题是:有没有比Shiny更方便的GUI框架(只有本地、快速启动和快速返回)?或者是一种很好的方法,它足够轻(我不想让我的包对于一个小弹出窗口来说特别重)

    这取决于你的编码知识。然而,我的第一个方法是尝试改进你闪亮的应用程序。为此,您可以使用
    profvis
    来检查为什么您的闪亮应用程序运行缓慢。如果您决定继续使用Shiny,有很多方法可以缩短Shiny的启动时间。但是,如果你要得出结论,你真的想把船投得闪闪发光,那么你应该考虑使用JavaScript。
    • 要么用纯JavaScript编写完整的应用程序
    • 或者您可以在Shiny中使用JavaScript(例如)

    当然,@Pork Chop提到的使用
    rmarkdown
    或普通
    markdown

    的其他方法实际上取决于您的编码知识。然而,我的第一个方法是尝试改进你闪亮的应用程序。为此,您可以使用
    profvis
    来检查为什么您的闪亮应用程序运行缓慢。如果您决定继续使用Shiny,有很多方法可以缩短Shiny的启动时间。但是,如果你要得出结论,你真的想把船投得闪闪发光,那么你应该考虑使用JavaScript。
    • 要么用纯JavaScript编写完整的应用程序
    • 或者您可以在Shiny中使用JavaScript(例如)

    当然还有@Pork Chop提到的使用
    rmarkdown
    或普通
    markdown

    的其他方法。下面是R附带的GUI工具(无需软件包):

    (1) 对于足够简单的应用程序,
    select.list
    菜单
    读线
    文件。可以使用choose
    choose.dir
    ,并根据用户所处的环境显示文本或图形用户界面。这些都带有R,启动速度非常快,并且易于编程。请参阅这些命令的帮助页,然后重试:

    select.list(c("oranges", "apples", "pears"))
    menu(c("oranges", "apples", "pears"))
    readline("Enter name of fruit: ")
    choose.dir()
    file.choose()
    
    (2) tcltk软件包是一种能够提供像闪亮一样复杂的用户界面的可能性。这是R附带的,因此不需要安装。只需要使用
    语句加载它。(如果用户从源代码构建R,则可以在没有tcltk功能的情况下构建R,但在99%的情况下,tcltk都会存在)

    这里有几个使用tcltk的R源代码的简短示例:您可以运行Rcmdr包来查看复杂tcltk用户界面的示例,尽管由于其较大的尺寸,这比简单应用程序的加载时间要长


    由于tcltk是R本身的一部分,因此它没有CRAN页面,但对于使用tcltk的其他软件包,请查看其底部tcltk2软件包的反向依赖关系,因为依赖它的任何软件包也必须使用tcltk。

    以下是R附带的GUI功能(无需软件包):

    (1) 对于足够简单的应用程序,
    select.list
    菜单
    读线
    文件。可以使用choose
    choose.dir
    ,并根据用户所处的环境显示文本或图形用户界面。这些都带有R,启动速度非常快,并且易于编程。请参阅这些命令的帮助页,然后重试:

    select.list(c("oranges", "apples", "pears"))
    menu(c("oranges", "apples", "pears"))
    readline("Enter name of fruit: ")
    choose.dir()
    file.choose()
    
    (2) tcltk软件包是一种能够提供像闪亮一样复杂的用户界面的可能性。这是R附带的,因此不需要安装。只需要使用
    语句加载它。(如果用户从源代码构建R,则可以在没有tcltk功能的情况下构建R,但在99%的情况下,tcltk都会存在)

    这里有几个使用tcltk的R源代码的简短示例:您可以运行Rcmdr包来查看复杂tcltk用户界面的示例,尽管由于其较大的尺寸,这比简单应用程序的加载时间要长


    因为tcltk是R本身的一部分,所以它没有CRAN页面,但对于使用tcltk的其他包,请查看其底部tcltk2包的反向依赖关系,因为依赖它的任何包也必须使用tcltk。

    为什么不尝试rmarkdown?它应该是包开发的一部分anyway@PorkChop我不想要一个报告,而是一个GUI,允许用户以交互方式选择函数的参数。我的意思是,闪亮是好的,允许我想要的一切。关键是它的启动和停止都很慢,因此我想知道是否有比Shining更适合这种用途的替代品。为什么不试试rmarkdown呢?它应该是包开发的一部分anyway@PorkChop我不想要一个报告,而是一个GUI,允许用户以交互方式选择函数的参数。我的意思是,闪亮是好的,允许我想要的一切。关键是它的启动和停止都很慢,因此我想知道是否有比闪亮更适合这类产品的替代品