R制作级别没有值/空来制作lealfet图例/地图

时间:2016-01-29 18:57:48

标签: r shiny leaflet

所以我正在创建一个闪亮的应用程序,显示一个传单地图,用于显示调查数据。我想要想象的其中一个值是0到14之间的值,它表示您最同意的两个陈述中的哪一个(0表示您完全同意陈述A,14表示您完全同意陈述B而7表示您同意同意)。

目前我有一个看起来像这样的传奇

enter image description here

问题是数据是动态的,例如,有可能没有高于9的值。当发生这种情况时,我会收到警告......

Warning: Unhandled error in observer: invalid 'labels'; length 3 should be 1 or 2

应用程序崩溃了。获取图例/地图中使用级别的代码如下所示......

faktorTest <- factor((områden[,2] >= 5) + (områden[, 2] >= 9), 
              labels = c("Less than 5", "Between 5 and 9", "More than 9"))

        colorTest <- colorFactor(c("darkred","darkorange","darkgreen"),
                                    levels = faktorTest,ordered=FALSE)
leafletProxy("map")%>%
        clearShapes()%>%
        clearControls()%>%
        addPolygons(data=uv84, weight = 2, fillOpacity = 0.8, smoothFactor = 0.5,
                    popup = pop_up, color = ~colorTest(faktorTest))%>%
        addLegend("bottomleft", pal = colorTest, values = faktorTest, na.label ="Ingen data", title =input$var2 )

即使没有表示值,有没有办法创建所有三个级别?假设你没有5岁以下的价值?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用cut生成因素:

cut(områden[,2],breaks=c(-Inf,5,9,+Inf),include.lowest=T,labels = c("Less than 5", "Between 5 and 9", "More than 9"))

即使其中一个没有数据点,它也会创建3 levels