我有一个类似于下面的例子的数据集.我希望能够做的是根据非缺失值及其相关的"名称"为所有缺失值分配正确的"标题"值.因此,所有名称为"A"的条目都将具有标题"X",并且类似于"B"和"Y".
Name | Title
-------------
A | X
A | NA
A | NA
B | NA
B | Y
B | Y
Run Code Online (Sandbox Code Playgroud)
每个"名称"应该只有一个"标题"值,尽管这一个值可能会出现多次.
我想有几个曲折的条件循环可以实现这一点,但我很好奇是否有更干净/更有效的方法来解决这个问题?
在一个闪亮的应用程序中使用RStudio Leaflet包我已经能够实现我所寻找的所有功能,除非在点击后取消选择标记对象.
更具体地说,在单击任何标记之前,输入$ map_click_id值设置为NULL.单击标记后,将使用该标记的数据(ID,lat,lng,nonce)进行更新.我想设置地图,以便当用户点击地图中不是标记的任何区域时,输入$ map_click_id将重置为NULL,直到单击另一个标记.
我已经尝试了很多解决方案,例如比较标记点击和地图点击的点击次数,但标记点击变量,一旦设置为非NULL值,每次点击地图时都会更新,无论是什么它是否在标记上,所以这不起作用.
这里的任何帮助将不胜感激!下面是一个非常小的可重复示例.在这种情况下,我希望标记信息在单击时打印到控制台,并在单击任何非标记区域时将NULL返回到控制台.
library(leaflet)
library(shiny)
# set basic ui
ui <- fluidPage(
leafletOutput("map")
)
server <- shinyServer(function(input, output) {
# produce the basic leaflet map with single marker
output$map <- renderLeaflet(
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addCircleMarkers(lat = 54.406486, lng = -2.925284)
)
# observe the marker click info and print to console when it is changed.
observeEvent(input$map_marker_click,
print(input$map_marker_click)
)
})
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
这似乎与这里提出的问题相同,但由于没有答案,我想我会再试一次.