【发布时间】:2018-03-05 23:02:14
【问题描述】:
我正在尝试在Shiny 中使用 if 语句。
我想在for() 循环之外同时使用“min”和“name”变量。
我尝试将if() 语句放入reactive,但我无法访问“min”和“name”变量。
代码:
server=function(input, output){
cord <- reactive({matrix(c(input$long,input$lat),nrow=1,ncol=2)})
min=reactive({distHaversine(c(b[1,2],b[1,3]),c(cord[,1],cord[,2]))})
for (i in 1:15){
distance=reactive({distHaversine(c(b[i,2],b[i,3]),c(cord[,1],cord[,2]))})
if(distance() < min())
{
min=distance()
name=reactive({CO[i,1]})
}
}
data=reactive({name()})
output$table<-renderTable(data())
}
shinyApp(ui=ui,server=server)
【问题讨论】:
-
最好不要使用内置函数名作为变量名(例如 min)。
distance() < min()无法工作。您测试一个功能是否低于另一个功能。没有意义。 -
cord 也是一种反应式,所以像这样访问它
cord()