我正在构建一个简单的闪亮应用程序来显示用户选择的网络上的中心性度量。用户选择要计算的网络格式、网络文件和中心性度量,然后单击按钮来布局和可视化图表,其中节点的大小与节点的中心性成正比。在输出中,我隔离了除按钮之外的所有输入,以便仅在用户选择相关信息(格式、文件、度量)并单击可视化按钮时才完成计算。它可以工作,但存在以下问题:每次单击可视化按钮时,都会重新计算布局,并以不同的方式可视化网络。我想避免这种行为。我试图将布局计算包含在一个调用(请参阅注释代码),但随后隔离失败。因此,我能够隔离但不能使代码具有反应性,或者在没有隔离的情况下使其具有反应性。renderPlot
reactive
界面代码如下:
shinyUI(fluidPage(
titlePanel("Visualize and compare centrality measures"),
sidebarLayout(
sidebarPanel(
selectInput("format", label = h4("Select graph format"),
choices = c("gml", "graphml", "edgelist", "pajek", "ncol", "lgl",
"dimacs", "graphdb", "dl")),
br(),
fileInput("graph", label = h4("Load graph")),
br(),
selectInput("centrality", label = h4("Select centrality measure"),
choices = c("degree", "eigenvector", "Katz")),
br(),
conditionalPanel(
condition = "input.centrality == 'Katz'",
numericInput("alpha",
label = h4("Alpha"), min=0, step = 0.05,
value = 1)),
actionButton("plot", "Visualize")
),
mainPanel(plotOutput("net"))
)
))
Run Code Online (Sandbox Code Playgroud)
服务器代码如下:
library(igraph)
# …
Run Code Online (Sandbox Code Playgroud) 我想使用基数R(没有任何特定的软件包)来表示以下SQL查询:
select month, day, count(*) as count, avg(dep_delay) as avg_delay
from flights
group by month, day
having count > 1000
Run Code Online (Sandbox Code Playgroud)
它选择平均起飞延迟和繁忙日(每天有超过1000个航班的天数)的每日航班数。数据集为nycflights13,其中包含2013年从纽约出发的航班信息。
注意,我可以轻松地在dplyr中将其编写为:
flights %>%
group_by(month, day) %>%
summarise(count = n(), avg_delay = mean(dep_delay, na.rm = TRUE)) %>%
filter(count > 1000)
Run Code Online (Sandbox Code Playgroud)