小编Cha*_*abo的帖子

暂停函数以等待来自模式、Shiny 的用户输入

我有一个闪亮的对话,允许用户输入数据库的凭据。

问题是该模块是在被调用函数内部打开的,因此我需要以某种方式暂停该函数继续运行,直到用户输入所需字段。我尝试过使用req,但无法使其工作,observeEvent()也无法工作,因为我无法return从该环境中获得任何东西。

如果我不以某种方式暂停程序,该函数将在没有用户名和密码的情况下继续运行,并且不会获取数据。“取消暂停”的触发器是input$Submit模态中的按钮。

library(shiny)

ui<-
  fluidPage(
    sidebarLayout(position="left",
              sidebarPanel("Parameters",width = 4,
                radioButtons("Type","Test", choices= list("Test"="p", 
                                                         "Test"="l")),
                actionButton("GO","Open Modual")
              ),
              mainPanel(
                plotOutput("Test")

              )))

server<- function(input,output){

 Credential<-function(Test){

 showModal(modalDialog( 
  title = "Credentials Required",
  textInput("Username", "Enter User Name", value = ""),
  textInput("Password", "Enter Password:", value = ""),
  footer =  actionButton("Submit", "Submit"),
  modalButton("Cancel"))
 )

#Use Assigned Username and Password to go fetch data.
#Note data must be returned, somehow need to pause or somthing here.

  }   

  #Call Function …
Run Code Online (Sandbox Code Playgroud)

r shiny reactive

6
推荐指数
0
解决办法
1764
查看次数

合并DF时删除重复项

我知道,我知道....另一个合并的 Df 问题,请听我说,因为我已经搜索了关于这个问题的答案,但没有出现。

我正在合并两个 Df,一个比另一个小,并进行左合并,以将较长的 DF 与较小的 DF 相匹配。

这很有效,除了一个问题,当右侧(较长)df 有重复项时,行会添加到左侧(较小)df 中。

一个例子:

Row<-c("a","b","c","d","e")
Data<-(1:5)
df1<-data.frame(Row,Data)

Row2<-c("a","b","b","c","d","e","f","g","h")
Data2<-(1:9)
df2<-data.frame(Row2,Data2)

names(df2)<-c("Row","Data2")

DATA<-merge(x = df1, y = df2, by = "Row", all.x = TRUE)

>DATA
  Row Data Data2
1   a    1     1
2   b    2     2
3   b    2     3
4   c    3     4
5   d    4     5
6   e    5     6
Run Code Online (Sandbox Code Playgroud)

看到额外的“b”行?,这就是我想要摆脱的,我想保留左边的 DF,但非常严格,就像 DF1 中有 5 行,合并时我希望只有 5行。

像这样...

  Row Data Data2
1   a    1     1
2   b    2     2
3 …
Run Code Online (Sandbox Code Playgroud)

merge r

1
推荐指数
1
解决办法
2万
查看次数

RShiny 安装错误:包“shiny”延迟加载失败

我正在尝试安装 Shiny 软件包,但收到此错误

\n\n
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : \n  namespace \'httpuv\' 1.4.1 is being loaded, but >= 1.4.4 is required\nERROR: lazy loading failed for package \'shiny\'\n* removing \'C:/Users/ikum/Documents/R/win-library/3.3/shiny\'\nWarning in install.packages :\n  running command \'"C:/PROGRA~1/R/R-33~1.2/bin/x64/R" CMD INSTALL -l "C:\\Users\\ikum\\Documents\\R\\win-library\\3.3" C:\\Users\\ikum\\AppData\\Local\\Temp\\RtmpcbANIA/downloaded_packages/shiny_1.2.0.tar.gz\' had status 1\nWarning in install.packages :\n  installation of package \xe2\x80\x98shiny\xe2\x80\x99 had non-zero exit status\n
Run Code Online (Sandbox Code Playgroud)\n\n

即使当我尝试下载httpuv 使用 targz 文件的最新版本时,它仍然是 1.4.1 版本。我httpuv也手动删除并从 CRAN 存储库重新安装它。似乎什么都不起作用。

\n\n

我也有最新版本的 RStudio 和 R。

\n\n

有针对这个的解决方法吗?

\n

r shiny

1
推荐指数
1
解决办法
4297
查看次数

标签 统计

r ×3

shiny ×2

merge ×1

reactive ×1