首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Shiny服务器中的For循环:如何不在每次按ActionButton时覆盖值?

Shiny服务器中的For循环:如何不在每次按ActionButton时覆盖值?
EN

Stack Overflow用户
提问于 2019-06-13 20:57:09
回答 1查看 56关注 0票数 0

我正在尝试创建一个应用程序,其中UI的一部分显示由用户输入的单词/字符串生成的词云。为此,我将输入传递给一个for循环,该循环假定在按下action按钮时将每个输入存储在一个空向量中。然而,我遇到了两个问题:一个是没有显示单词云,没有错误指示,另一个是for循环每次按下按钮时都会覆盖向量,这样它总是只有一个单词,而不是逐渐添加更多的单词。我认为没有显示是因为只有一个单词,而wordcloud似乎至少需要两个单词才能打印任何东西:那么我如何才能让for循环在Shiny中像预期的那样工作呢?

代码语言:javascript
运行
AI代码解释
复制
library(shiny)
library(stringr)
library(stringi)
library(wordcloud2)



ui <- fluidPage(

titlePanel("Strings Sim"),

 sidebarLayout(
 sidebarPanel(
  textInput("string.input", "Create a string:", placeholder = "string <-"),
  actionButton("go1", "GO!")
),

  mainPanel(
   textOutput("dummy"),
   wordcloud2Output("the.cloud")
  )


)
)

server <- function(input, output, session) {


 observeEvent(input$go1, {

   high.strung <- as.vector(input$string.input)
   empty.words <- NULL

for (i in high.strung) {
  empty.words <- c(empty.words, i)
}

word.vector <-matrix(empty.words, nrow = length(empty.words),ncol=1)

num.vector <- matrix(sample(1000), nrow=length(empty.words),ncol=1)

prelim <- cbind(word.vector, num.vector)

prelim.data <- as.data.frame(prelim)

prelim.data$V2 <- as.numeric(as.character(prelim.data$V2))

 output$the.cloud <- renderWordcloud2(
  wordcloud2(prelim.data)
   )

print(empty.words)
  })
  }

     shinyApp(ui=ui,server=server)

当我在没有闪亮的代码的情况下运行它时,操作就能正常工作;我基本上只使用一个字符串来代替输入,运行几次for循环来生成word cloud使用的dataframe,并获得类似于附加的图片的东西,这就是我想要的:

没有闪光的功能代码:

代码语言:javascript
运行
AI代码解释
复制
 empty.words <- NULL

 #Rerun below here to populate vector with more words and regenerate wordcloud

 high.strung <- as.vector("gumbo")

 for (i in high.strung) {
   empty.words <- c(empty.words, i)
   return(empty.words)
 }

 word.vector <-matrix(empty.words, nrow = length(empty.words),ncol=1)

 num.vector <- matrix(sample(1000), nrow=length(empty.words),ncol=1)

 prelim <- cbind(word.vector, num.vector)

 prelim.data <- as.data.frame(prelim)

 prelim.data$V2 <- as.numeric(as.character(prelim.data$V2))

 str(prelim.data)

 wordcloud2(prelim.data)

任何帮助都是非常感谢的!

编辑:使用无光泽的代码获得更多所需输出的图片。(我编辑了数据帧输出以覆盖单词cloud,只是为了在一张图片中显示云和帧,即不需要它们以这种方式显示)。每次按下按钮,输入的单词都应该添加到构建云的数据帧中,逐渐使其成为决定大小的larger.The随机数向量,而不必在每次按下时保持不变,但每个输入的单词都应该保存在向量中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 21:50:19

你的应用缺少反应性。您可以阅读有关概念here的内容。您可以输入字符串,只要数据帧中至少有两个单词,就会呈现wordcloud。如果不想拆分多个单词字符串,只需删除str_split()函数即可。

代码语言:javascript
运行
AI代码解释
复制
library(shiny)
library(stringr)
library(stringi)
library(wordcloud2)



ui <- fluidPage(

  titlePanel("Strings Sim"),

  sidebarLayout(
    sidebarPanel(
      textInput("string.input", "Create a string:", placeholder = "string <-"),
      actionButton("go1", "GO!")
    ),

    mainPanel(
      textOutput("dummy"),
      wordcloud2Output("the.cloud")
    )


  )
)

server <- function(input, output, session) {

  rv <- reactiveValues(high.strung = NULL)
  observeEvent(input$go1, {
    rv$high.strung <- c(rv$high.strung,str_split(c(input$string.input), pattern = " ") %>% unlist)
  })

  prelim.data <- reactive({
    prelim <- data.frame(
      word.vector = rv$high.strung, 
      num.vector = sample(1000, length(rv$high.strung), replace = TRUE)
    )
  })

  output$the.cloud <- renderWordcloud2(
    if (length(rv$high.strung) > 0)
      wordcloud2(prelim.data())
  )

}

shinyApp(ui=ui,server=server)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56588465

复制
相关文章
Flutter Hooks 使用及原理
Hooks,直译过来就是"钩子",是前端React框架加入的特性,用来分离状态逻辑和视图逻辑。现在这个特性并不只局限在于React框架中,其它前端框架也在借鉴。同样的,我们也可以在Flutter中使用Hooks。Hooks对于从事Native开发的开发者可能比较陌生。但Flutter的一大优势就是综合了H5,Native等开发平台的优势,对Native开发者和对H5开发者都比较友好。所以通过这篇文章来介绍Hooks,希望大家能对这一特性有所了解。
HowHardCanItBe
2020/09/15
2.5K0
为啥Flutter Hooks没有受到太多关注和青睐?
Flutter Hooks 虽然面世已经有一段时间了,但是迄今为止它并没有受到太多关注和青睐。我很奇怪为什么会是这个样子,毕竟它真的很好用!在本文中,我会试着告诉大家如何使用 Flutter Hooks 来减少样板代码,并基本上摆脱你现在用的几乎所有有状态小部件(StatefulWidget),让大家知道 Hooks 用起来是多么简单利落!
深度学习与Python
2020/08/11
1.2K0
2-SII--应用本包下文件写入和读取
零、先说一下我的IO小工具方法: 1.IO读写: IO.png 2.读取InputStream /** * 读取InputStream * * @param is
张风捷特烈
2018/09/26
4580
项目打包成 jar 后包无法读取src/main/resources下文件
该代码功能是利用 common.io 包下的FileUtils来读取文件, 放到一个字符串中
时间静止不是简史
2022/05/06
13.8K0
项目打包成 jar 后包无法读取src/main/resources下文件
读取 resources 目录下文件路径的九种方式
主要核心方法是使用getResource和getPath方法,这里的getResource("")里面是空字符串
botkenni
2022/08/25
8510
flutter系列之:构建Widget的上下文环境BuildContext详解
我们知道Flutter中有两种Widget,分别是StatelessWidget和StatefulWidget,StatelessWidget中有一个build方法来创建对应的Widget,虽然StatefulWidget中没有对应的build方法,但是和StatefulWidget对应的State中也有同样的build方法。
程序那些事
2022/08/26
5360
flutter系列之:构建Widget的上下文环境BuildContext详解
我们知道Flutter中有两种Widget,分别是StatelessWidget和StatefulWidget,StatelessWidget中有一个build方法来创建对应的Widget,虽然StatefulWidget中没有对应的build方法,但是和StatefulWidget对应的State中也有同样的build方法。
程序那些事
2022/12/07
1.2K0
flutter系列之:构建Widget的上下文环境BuildContext详解
vb.net 从FTP读取目录下文件名列表
Dim saveFile As String = "g:\namelist.txt" If File.Exists(saveFile) Then File.Delete(saveFile) End If Dim sw1 As StreamWriter = New StreamWriter(saveFile, False, System.Text.Encoding.Default) '输出文件
办公魔盒
2019/07/22
2.8K0
node读取目录下文件,筛选文件夹和文件!
node也学习了几天,今天讲解一下刚学习的小案例!使用fs模块fs.readdir读取只能目录下文件,筛选文件和文件夹
十月梦想
2018/08/29
2.1K0
长度未知的数组大小
malloc 和 calloc都可以被用于申请堆上的空间。 malloc 和 calloc主要有两点不同:
小飞侠xp
2021/04/13
2.6K0
自从上了 Prometheus 监控,睡觉真香!
当我第一次接触 Prometheus 的时候也有类似的感觉。对初学者来说, Prometheus 包含的概念太多了,门槛也太高了。
二哥聊运营工具
2021/12/17
2040
自从上了 Prometheus 监控,睡觉真香!
Cloudflare 配合 iptables 屏蔽未知流量
由于我的机器的 Web 服务在 Cloudflare 后面,然而通过 IP 也可以直接访问,感觉有些不太安全。由于我的服务都开启了 Cloudflare proxy,于是决定直接把从非 Cloudflare 的流量直接屏蔽掉,这就可以借助 iptables 来进行。
嘿嘿不务正业
2023/05/09
1.5K0
Cloudflare 配合 iptables 屏蔽未知流量
记录一个未知的问题
Visual Studio一启用应用程序就提示“操作无法完成,因为该文件已在xx.exe中打开”,但是我启动的就是xx.exe啊
meteoric
2018/11/19
7060
自从上了 SkyWalking,睡觉真香!!
作者:废物大师兄 来源:www.cnblogs.com/cjsblog/p/14075486.html
肉眼品世界
2021/01/06
6120
自从上了 SkyWalking,睡觉真香!!
自从上了Prometheus,睡觉真香!
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/05/25
7070
自从上了Prometheus,睡觉真香!
从上海精准防疫来看测试质量建设
最近很多同学都在想要不要回去过年,相比于以前的一票难抢,今年大家更关注的是家乡的防疫策略是怎样的,普遍的共识是,老家的政策要比上海严格很多,至少给在外工作的同学心理上已经产生了层层障碍,对比之下一个有趣的现象是上海作为超级城市,也是承担国内外交通流量的枢纽,在高速关卡、地铁站都不用检查绿码,曾经也有人质疑上海管理是不是太松懈了?
周辰晨
2022/01/23
3030
从上海精准防疫来看测试质量建设
Tstart_未知之境_个人笔记
没接触CTF也有一段时间了,好多都忘了,参与这次的Tstart高校挑战赛能做就只做出一题,是我太菜了。整体的题目都很有意思,注意这里只做一个我自己的思路的wp,不能作为官方确定WP的参考,仅供一起探讨学习。同时也期待其他师傅的更优秀的wp。还有我第五关下单的暴打出题人请尽快发货!!!!!!!!!!!!!!!!
Bydream
2022/04/24
7680
串联执行N(未知)个函数
观察源码,我们在定义函数时为函数增加一个参数next,next是当前执行函数执行完后,下一个执行函数。
挥刀北上
2021/01/22
6210
串联执行N(未知)个函数
点击加载更多

相似问题

使用flutter HookWidget和didChangeAppLifecycleState

3124

如何使用flutter HookWidget在didChangeAppLifecycleState生命周期钩子中拥有访问上下文?

571

值发生更改时,Flutter HookWidget不会重新构建

141

从上游读取响应头时未知的主脚本

12

Nginx -从上游读取响应头时,主脚本未知

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档