我正在使用R shiny来构建Web应用程序,其中一些正在利用伟大的传单功能.
我想创建一个定制的高级弹出窗口,但我不知道如何继续.
你可以看看我在github上为这篇文章创建的项目中可以做些什么,或者直接在shinyapp.io 这里
弹出窗口越复杂,我的代码就越奇怪,因为我有点以一种奇怪的方式组合R和html(参见我在server.R中定义我的custompopup'i'的方式).
还有更好的方法吗?构建此类弹出窗口有哪些好的做法?如果我打算根据点击的标记显示图表,我应该提前构建它们,还是可以"动态"构建它们?我怎样才能做到这一点?
非常感谢您对此的看法,请不要犹豫,在这里分享您的答案或直接更改我的github示例!
问候
我想在传单地图上显示加拿大的多边形.
# create map
library(leaflet)
m = leaflet() %>% addTiles()
m
Run Code Online (Sandbox Code Playgroud)
我能够找到加拿大的多边形:http://www.gadm.org/country.我为R选择了SpatialPolygonsDataFrame格式,但还有其他格式可用(例如Shapefile)
# load object in R
load("country_polygons/CAN_adm0.RData")
pol_can <- gadm
Run Code Online (Sandbox Code Playgroud)
如何在地图上显示形状?我假设我必须利用sp包,但我无法弄清楚如何这样做.非常感谢您的帮助!
我喜欢ggplot2 包的stat_ecdf()功能部分,我发现它对于探索数据系列非常有用。然而,这只是视觉上的,我想知道是否可行 - 如果可行,如何 - 获取关联的表?
请查看以下可重现的示例
p <- ggplot(iris, aes_string(x = "Sepal.Length")) + stat_ecdf() # building of the cumulated chart
p
attributes(p) # chart attributes
p$data # data is iris dataset, not the serie used for displaying the chart
Run Code Online (Sandbox Code Playgroud)

我想通过R控制传单功能弹出窗口的宽度,我该怎么做?
output$HomeMap <- renderLeaflet(leaflet() %>%
addTiles() %>%
setView(1.93, 41.48, zoom = 3) %>%
addPolygons(data = subset(world, name %in% datasourceInput()),
color = datasourceColor(),
weight = 1,
popup = datasourcePopups()
))
Run Code Online (Sandbox Code Playgroud)
我不明白如何控制与弹出窗口相关的选项。
在此先感谢您在此问题上的帮助和最诚挚的问候!
我在尝试在闪亮的应用程序(来自 DT 包)中使数据表具有反应性时遇到问题。这是我的可重现示例:
用户界面
dashboardPage(
dashboardHeader(title = "TEST reactive DT"),
dashboardSidebar(
sidebarMenu(
menuItem("See data", tabName = "db"),
menuItem("Test", tabName = "test")),
radioButtons("rb1", label = "Select data",
choices = list("IRIS" = "iris", "CARS" = "cars"),
selected = "iris")
),
dashboardBody(
tabItems(
tabItem(tabName = "db",
h4("Show selected dataset"),
fluidRow(DT::dataTableOutput('tbl')) #THIS DOES NOT WORK (NOT REACTIVE)
),
tabItem(tabName = "test",
h4("Test tab"),
fluidRow(column(3, verbatimTextOutput("value"))) #THIS WORKS
)
)
)
)
Run Code Online (Sandbox Code Playgroud)
服务器文件
library(shiny)
library(shinydashboard)
server <- function(input, output, session) {
output$value <- renderPrint({ input$rb1 …Run Code Online (Sandbox Code Playgroud) 我需要找到与一组日期相对应的所有“下周五”。
例如 2015-08-03(2015 年 8 月 3 日星期一)作为输入应该返回 2015-08-07(2015 年 8 月 7 日星期五)作为输出。
在阅读lubridate 的小插图时,我找不到满足这种需求的方法,您将如何进行?
library(lubridate)
date <- "2015-08-03"
date <- wmd(date)
wday(date, label = TRUE)
Run Code Online (Sandbox Code Playgroud) 上下文
我想使用基于html 模板的高级 UI 创建一个 R Shiny 仪表板。因此,UI 是用纯 HTML 构建的,我使用Bootstrap 4 免费模板作为起点。
问题 虽然使用 highcharter 及其 Shiny 集成功能可以很好地处理超级基本的 HTML 文件(与上面的教程相同),但一旦我使用引导仪表板主题,图表就不会显示。
我已经尝试过的
可重现的示例
在这里共享可重现的示例很困难,因为您需要完整的 SB Admin 2 文件夹才能使其工作。基本上这不起作用:
# insert the following in my HTML template (index.html)
{{ highchartOutput("highcharter_plot") }}
Run Code Online (Sandbox Code Playgroud)
相应的可复制服务器部分:
# in server.R
output$highcharter_plot <- renderHighchart({
data(citytemp)
hc <- highchart() %>%
hc_xAxis(categories = citytemp$month) %>%
hc_add_series(name = "Tokyo", data = citytemp$tokyo) %>%
hc_add_series(name = "London", data = citytemp$london) %>%
hc_add_series(name = "Other …Run Code Online (Sandbox Code Playgroud) 我想在数据框中添加新列,并使用存储在另一个数据帧中的预定义值填充.什么是最好的方法?
很高兴:如果新变量出现在d2中,是否可以使代码动态化?
d1 <- head(iris) # dataframe 1 ----------
var <- c("var1", "var2", "var3")
val <- c(5, 7, 1)
d2 <- as.data.frame(cbind(var, val)) # dataframe 2 ----------
Run Code Online (Sandbox Code Playgroud)
第一个数据帧

第二个数据帧

期望的输出

最好的祝福
我应该如何进行(通过R以下方式整理我的数据集:
tidyr包裹我正在考虑使用tidyr但我无法弄清楚如何继续.任何建议?
input <- structure(list(ID = structure(c(1L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 2L, 3L, 4L),
.Label = c("obs 1", "obs 10", "obs 11", "obs 12", "obs 2", "obs 3",
"obs 4", "obs 5", "obs 6", "obs 7", "obs 8", "obs 9"),
class = "factor"),
Proposal.1...first = structure(c(2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L),
.Label = c("", "first"), class = "factor"),
Proposal.1...second …Run Code Online (Sandbox Code Playgroud) 我想开发一堆Shiny应用程序,每个应用程序都在处理(和编辑)同一组数据.这是可行的,如果是的话,项目应该如何构建?
1闪亮的应用程序
2个闪亮的应用程序
有没有办法引用数据的另一个位置,或以这种方式在根文件夹中存储应用程序:
每个应用程序使用位于数据文件夹中的数据.对于每个应用程序,ui.R,server.R和global.R存储在"app_i"文件夹中.
据我所知,ui.R,server.R和global.R应始终位于项目的根目录,这使得无法在同一数据集上使用多个应用程序.
提前感谢您对此的看法,并分享最佳实践.
问候