如何使用复选框以交互方式过滤 visNetwork 中的节点/边? (使用R闪亮)

2024-04-29

使用 Shiny 和 visNetwork R 包我创建了一个交互式网络可视化。我希望用户能够通过使用用户界面中的复选框来删除/添加节点和边。我设法让它部分工作,但不知何故,当过滤多个项目时,我的解决方案不起作用。

可以查看我试图实现的行为的示例here https://visjs.github.io/vis-network/examples/network/data/dynamicFiltering.html.

请在下面找到我的代码。

library(visNetwork)
library(shiny)
library(dplyr)

nodes <- data.frame("id" = 1:6)
edges <- data.frame("id" = 1:4, "to" = c(1,2,4,5), "from" = c(2,3,5,6))

ui <- fluidPage(title = "example",
                fillPage(
                  sidebarLayout(
                    sidebarPanel(
                      checkboxGroupInput(inputId = "filterNodes", 
                                         label = "Select nodes:", 
                                         choices = nodes$id, 
                                         selected = nodes$id),
    
                      width = 3),
                    mainPanel(
                      visNetworkOutput("network_proxy_update",width = "100%", height = "90vh"),
                      width = 9)
                  )
                  
                )
)

server <- function(input, output) {

  
  output$network_proxy_update <- renderVisNetwork({
    visNetwork(nodes, edges) %>% visNodes (color = "blue")
  })
  
  observe ({
  
    filteredNodes <- data.frame("id" = nodes[nodes$id %in% input$filterNodes, "id"])
    hiddenNodes <- anti_join(nodes, filteredNodes)
    
    
    visNetworkProxy("network_proxy_update") %>%
      visRemoveNodes(id = hiddenNodes) %>%
      visUpdateNodes(nodes = filteredNodes)
      
  })
}

shinyApp(ui = ui, server = server)

任何帮助将不胜感激。 此致, 蒂姆


visRemoveNodes需要 id 的向量 whilevisUpdateNodes需要一个data.frame节点数:

library(visNetwork)
library(shiny)
library(dplyr)

nodes <- data.frame("id" = 1:6)
edges <- data.frame(
  "id" = 1:4,
  "to" = c(1, 2, 4, 5),
  "from" = c(2, 3, 5, 6)
)

ui <- fluidPage(title = "example",
                fillPage(sidebarLayout(
                  sidebarPanel(
                    checkboxGroupInput(
                      inputId = "filterNodes",
                      label = "Select nodes:",
                      choices = nodes$id,
                      selected = nodes$id
                    ),
                    width = 3
                  ),
                  mainPanel(
                    visNetworkOutput("network_proxy_update", width = "100%", height = "90vh"),
                    width = 9
                  )
                )))

server <- function(input, output) {
  output$network_proxy_update <- renderVisNetwork({
    visNetwork(nodes, edges) %>% visNodes (color = "blue")
  })
  
  myVisNetworkProxy <- visNetworkProxy("network_proxy_update")
  
  observe ({
    filteredNodes <- nodes[nodes$id %in% input$filterNodes, , drop = FALSE]
    hiddenNodes <- anti_join(nodes, filteredNodes)
    visRemoveNodes(myVisNetworkProxy, id = hiddenNodes$id)
    visUpdateNodes(myVisNetworkProxy, nodes = filteredNodes)
  })
}

shinyApp(ui = ui, server = server)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用复选框以交互方式过滤 visNetwork 中的节点/边? (使用R闪亮) 的相关文章

  • 在 R 中按组检查重叠开始和结束时间

    我想检查数据的重叠 这是数据 ID lt c rep 1 3 rep 3 5 rep 4 4 rep 5 5 Begin lt c 0 2 5 3 7 8 7 25 25 10 15 17 20 1 NA 10 11 13 End lt c
  • 如果条件长度 > 1 并且仅使用第一个元素,为什么我会在 R 中收到此警告

    我有下面的源代码 这if is na monthData 用于检查是否monthData is NA 如果是 则为其分配一个初始值 monthData lt NA if category QUARTER for m in c rep 1 4
  • 删除 R 中具有重复属性的行

    我有一个大数据框 其中包含以下列 ID time OS IP 该数据帧的每一行对应一个条目 在该数据框中对于某些IDs存在多个条目 行 我想删除这些多行 显然 同一 ID 的其他属性会有所不同 或者换句话说 我只想要每个 ID 一个条目 行
  • 当测试集中不存在响应变量时,h2o 预测有时会失败

    当在不存在响应变量的测试集上进行预测时 如果在训练中对因子变量使用一种热编码 则 h2o 会以各种不同的方式失败 无论是在训练 GLM 时隐式指定还是在其他方法中显式指定时 R 3 4 0 和 h2o 3 12 0 1 中存在此错误 我们还
  • 建模前减少因子水平数量

    我有一个 2600 个级别的因子 我想在建模之前将其减少到 10 我想我可以通过这样的操作来做到这一点 如果一个因素列出的次数少于 x 次 则应将其放入名为 其他 的存储桶中 这是一些示例数据 df lt data frame colour
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • 在 Shiny 应用程序中过滤数据时,长度为 1 的字符向量除了第一个元素之外的所有元素都将被忽略错误

    我有以下闪亮的应用程序 library shiny library rhandsontable library shinydashboard library ggplot2 library dplyr setwd C Users Marc
  • R lubridate:当地语言的工作日

    如何获取本地语言的工作日和月份 My code library lubridate data lt c 10 02 2015 11 03 2015 data lubri lt dmy data wday data lubri label T
  • 将天气 iframe 嵌入到 Shiny Dashboard 中

    我正在尝试将 Forecast io 的天气预报嵌入到闪亮的仪表板中 我最初在使用 符号时遇到了麻烦 但看到一篇文章提供了如何使用特殊字符格式化 HTML 代码的示例 但是 当我运行该应用程序时 我看到一个简单的 未找到 即使我知道该链接有
  • 有没有一种简单的方法可以根据多个标准进行排名,从而保留 R 中的联系?

    当单个标准排序良好时 rank 函数会返回明显的结果 rank c 2 4 1 3 5 1 2 4 1 3 5 当单个标准具有联系时 排名函数 默认情况下 将平均排名分配给联系 rank c 2 4 1 1 5 1 3 0 4 0 1 5
  • 在 R 中将时间间隔数据扩展为天数

    假设我有如下所示的数据 interval id indiv id role start date end date 1 1 A 2006 05 01 2006 06 16 2 1 B 2006 06 16 2006 10 16 3 1 A
  • 在 mutate 和 across 之后使用 ~separate

    目的是将所有物种 setosa 行转换为一行 setosa 这是一个最小的示例 实际上有更多列和更多组 我有这个数据框 head iris 2 gt select 1 2 5 gt group by Species Sepal Length
  • 连接多个用户的 R 闪亮会话

    最小可重现示例 library shiny ui lt fluidPage actionButton button1 Run 1 actionButton button2 Run 2 server lt function session i
  • R:根据元素长度从向量中删除元素

    如何根据字符串的字符数或长度从字符串向量中删除元素 df lt c asdf fweafewwf af aewfawefwef awefWEfawefawef gt df 1 asdf fweafewwf af aewfawefwef aw
  • 如何从R中的日期中提取月份

    我正在使用lubridate封装并应用month从日期中提取月份的函数 我在日期字段上运行了 str 命令 得到了 Factor w 9498 levels 01 01 1979 01 01 1980 5305 1 1 1 1 1 1 1
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • matplotlib 中的 R 风格数据轴缓冲区

    R 绘图自动设置 x 和 y 限制 以在数据和轴之间留出一些空间 我想知道 matplotlib 是否有办法自动执行相同的操作 如果没有 是否有一个好的公式或 经验法则 来说明 R 如何设置其轴限制 在 matplotlib 中 您可以通过
  • 在函数中使用 quit/q 会导致 RStudio 出现致命错误

    更多的是好奇 但当你使用时q or quit在 R studio 内的函数内部 它会导致致命错误 如下所示 但 rgui 中的相同函数会导致 R 像往常一样停止 并且仅使用q 在 RStudio 中按预期关闭 R 为什么q在函数中导致 RS
  • R闪亮主面板显示样式和字体

    我正在学习闪亮的应用程序 并且有一些关于调整布局的基本问题 特别是样式和字体 希望得到指点或明确的答案 谢谢 考虑一个基本的输入输出应用程序 用户在 sidebarPanel 中输入数据 然后在 mainPanel 中反应性地输出结果 如何
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt

随机推荐

  • 在rails生产环境中禁用服务器端缓存

    我即将部署一个包含敏感数据的应用程序 因此 不应将任何数据存储到磁盘上 有没有办法禁用服务器端缓存 我找不到任何 我碰巧遇到了这个问题 并且假设您不再需要答案 但是 我相信您正在寻找的是以下内容 config action controll
  • 在javascript中将字符串转换为数字

    我想解析包含经度和纬度的用户输入 我想做的是将字符串强制转换为数字 保留其符号和小数位 但我想做的是当用户输入无效时显示一条消息 我应该遵循哪一个 parseFloat x second new Number x third x fourt
  • 我的 ViewModel 列表中每个项目的数据验证

    要使用正则表达式进行验证 我通常这样做 In my ViewModel RegularExpression MyRegex ErrorMessageResourceName MyErrorMessage public string MyFi
  • 写入 BigQuery 时处理卡住

    我正在使用云数据流将数据从 Pub Sub 消息导入到 BigQuery 表 我正在使用 DynamicDestinations 因为这些消息可以放入不同的表中 我最近注意到该进程开始消耗所有资源 并且消息表明该进程被卡住开始显示 Proc
  • Python 词干分析器问题:词干错误

    你好 我正在尝试用 python 词干分析器来词干 我尝试了 Porter 和 Lancaster 但他们也有同样的问题 他们无法正确阻止以 er 或 e 结尾的单词 例如 它们源于 computer gt comput rotate gt
  • Knockout 将 css 类绑定到观察到的模型属性

    我想将 divs css 类绑定到视图模型的属性 如下所示 div 但这会产生结果 div class 0 1 2 3 这是视图模型 myViewModel selectedPriority ko observable High Compa
  • 什么时候调用CloseHandle?

    我有一个主线程 它接收需要一些时间的操作 所以我创建一个线程并将工作委托给它 当主线程接收作业时 将调用此执行函数 每个作业都执行此执行 Return type execute Arguments here if a file read c
  • Google Chrome 的互联网历史记录脚本

    我并不是在寻找 最佳 或最有效的脚本来执行此操作 但我想知道是否存在一个脚本可以从 Google Chrome 中提取一天的互联网历史记录并将其记录到 txt 文件中 我更喜欢用 Python 或 MATLAB 编写 如果你们有不同的方法
  • mysqli_fetch_assoc() 期望参数 1 为 mysqli_result,布尔值给出

    看来我的 mysqli query 不起作用 我该怎么办 在密码附近的查询中使用 AND 而不是逗号 这就是查询返回 false 并抛出该错误的原因 select
  • 绘制 UML 时何时使用属性(属性)而不是关联/聚合/组合

    好吧 我有点困惑 当尝试在 UML 图中显示关系时 我应该向类添加属性 还是绘制与类的关联 例如 假设我有一个 DFA 类 其中包含 10 个状态对象 每个状态对象都有一组不同的通往 DFA 中各种状态的路径 我应该绘制从 DFA 到 St
  • 使用 SharpPcap 和 Packet.Net 发送我自己的 ARP 数据包

    到目前为止 我尝试使用 SharpPcap 发送我用 Packet Net 创建的 ARP 数据包 但没有成功 问题是即使我使用发送数据包device SendPacket它实际上没有被发送 我不知道为什么 这是我的代码 ARPPacket
  • 使用PHP exec调用Node脚本并在finally方法之前将数据返回给PHP

    我有一个 PHP 脚本 它使用exec函数来执行 Node 脚本并将一些数据返回到同一 PHP 脚本 我的问题是我需要将数据返回给 PHP 而不必等待中的清理代码finally完成 我在下面编写了一些示例代码 向您展示代码的流程并说明我的问
  • 如何通过函数参数使用 fstream(特别是 ofstream)

    嗨 我是一个c 初学者 这是我的作业之一 我有点卡住了 这不是我的全部代码 它只是我需要帮助的一小部分 我想做的是有一个函数专门用于将具有该函数的所有内容导出到text文件名为 results txt 因此 当我打开文件时 应该会显示 do
  • 将 Ruby 程序作为 Windows 服务运行?

    是否可以将 ruby 应用程序作为 Windows 服务运行 我看到有一个相关的问题讨论运行Java 应用程序作为 Windows 服务 https stackoverflow com questions 25530 best method
  • 如何在android中使用Ontouchevent突出显示此pdf页面

    这里我想使用android中的onTouchevent来突出显示这段文字 您可以使用 OnTouchListener 来获取事件的 x 和 y 然后将屏幕绘制为位图 并根据字母的左上角显示和字母的大小使用bitmap getPixel 看看
  • WSO2 API 管理器 - 我可以隐藏公共商店中的租户商店吗?

    是否可以隐藏租户商店 以便它们在公共商店中不可见 而只能通过其直接租户特定商店 URL 可见 例如 https api mydomain com store tenant mycustomer com https api mydomain
  • struct{} 和 struct{}{} 在 Go 中如何工作?

    我想知道 Go 中的 struct 和 struct 是什么意思 示例如下 array index struct or make map type struct struct is a keyword https golang org re
  • 根据设备宽度使用 CSS 更改 div 顺序

    我正在开发一个响应式网站 遇到了一个有趣的问题 我有一些并排的 div 可能有 2 到 6 个左右 当屏幕不够宽而无法正确显示所有内容时 div 会垂直堆叠 使用 CSS 就足够简单了 问题是 我需要它们根据布局采用不同的顺序 这很容易用
  • Android viewpager:添加/删除页面时出现奇怪的错误

    我不知道如何解释 所以我上传了一个视频Youtube http www youtube com watch v o5sn31IX Gc当我添加页面时一切正常 如果我从列表末尾开始并逐渐移至第一页 则删除页面也有效 但如果我删除 0 端之间的
  • 如何使用复选框以交互方式过滤 visNetwork 中的节点/边? (使用R闪亮)

    使用 Shiny 和 visNetwork R 包我创建了一个交互式网络可视化 我希望用户能够通过使用用户界面中的复选框来删除 添加节点和边 我设法让它部分工作 但不知何故 当过滤多个项目时 我的解决方案不起作用 可以查看我试图实现的行为的