2016-10-23 8 views
0

私はいくつかの都市(data)に400,000行のデータを持っています。私は彼らの場所とリーフレットで別のプロパティを視覚化したい。たとえば、与えられた都市のサンプル番号に応じて円のサイズを設定したいとします。私は正しい場所を取得するが、私は半径を変更することはできません。すべての都市のための単一のライン、すなわち場所、彼らのロンと緯度とunique(data$City)AddCircleMarkers、ShinyR、リーフレットの地図でNrowで半径を設定

m<-leaflet() %>% 
     addTiles() %>% 
     setView(20, 47, zoom = 13) %>% 
     addCircleMarkers(CityCoordinateData$Lon, CityCoordinateData$Lat, radius=nrow(data[grep(CityCoordinateData$Location, data$City),]) 

のgrepを使用する最初の要素だけのようだCityCoordinateData$Locationと同じ要素を持っている:私はこの下に、CityCoordinateDataは3列のDFがどこにあるか試してみました鼻。

radius=nrow(subdata[grep(paste(CityCoordinateData$Location,collapse = "|"), data$City, value=TRUE),]) 

感謝任意のヒントのために:私もそれが実行を開始したが終了したことがない、これを試してみました!

データのサンプルは次のようにシミュレートすることができる。

CityCoordinateData <- data.frame(Location=as.factor(c("Dorog", "Eger", "Erd")), Lon=c(17,18,19), Lat=c(40,41,42)) 
data <- data_sample<-data.frame(City=as.factor(c("Dorog", "Eger", "Erd", "Dorog", "Dorog", "Eger")), Variable=c(11,12,13,14,15,16)) 

だから、この例では、私は場所を希望半径3の円でマークされた「Dorog」、「イーガー」2「ERD "1.

+0

任意のサンプルデータなしで答えることは難しいが、1つの問題は、あなたのサブセットコマンドは、論理を必要とするサブセット化のために、一致するものを返すことになりそうだ(つまり 'grepl'使用)またはの整数位置をマッチ( 'value = FALSE') – blmoore

+0

@blmooreに同意すると、データのサンプルが大いに役立ちます。 –

+0

反応ありがとう!私はgreplを試しましたが、まだ最初の要素だけが半径に使用されています。上記の元の投稿に例を挙げてみました。この中で、すべての円は今、半径3を持っています。これは私が望むものではありません。 –

答えて

0

データには、場所ごとに複数の値があります。正しい場合は、場所ごとに複数のサークルが表示されます。これは私が試したコードです。

library(leaflet) 

CityCoordinateData <- data.frame(Location=c("Dorog", "Eger", "Erd"), 
           Lon=c(17,18,19), Lat=c(40,41,42)) 
data<-data_sample <- data.frame(City=c("Dorog", "Eger", "Erd", "Dorog", "Dorog", "Eger"), 
           Variable=c(11,12,13,14,15,16)) 

names(CityCoordinateData)[1] <- c("City") 

xy <- merge(CityCoordinateData, data) 

leaflet(data = xy) %>% 
    addTiles() %>% 
    addCircleMarkers(~Lon, ~Lat, radius = ~Variable) 

enter image description here