このシャイニーリーフレットアプリのサークルマーカーの半径をselectInput
変数で駆動しようとしています。selectInputによって駆動されるリーフレットアプリの円の半径
ドロップダウンには、 "Week.1"、 "Week.2"、 "Week.3"の3つの値があり、これらの数値はすべて、質問。
selectInput("weekView", "Week's Revenue:",
c("1" = "Week.1",
"2" = "Week.2",
"3" = "Week.3")),
私は現在Week.1
をロードおよびthr結果を得るています。私は週を変更し、マップ上の対応する$と反応する入力を知っています。 スタティック~(Week.1)
の代わりに$ weekViewを入力しようとすると、「Week.1」というエラーが表示されます。上のいずれかのアドバイスが最善の方法
leaflet(data = P) %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addCircleMarkers(~Long, ~Lat, popup = ~Week.1,
radius = ~(Week.1)/40000,
stroke = FALSE,
fillOpacity = 0.5)
を行くことができます...半径が計算される前に、私はそれらを削除する代わりに= Falseの引用符を使用してみましたが、私はそうする適切な場所を見つけることができませんよこれについて?私が言いたいのは radius = input$weekView/40000
あるすべてのスクリプト:DF = P
> head(P)
group Lat Long Country Week.1 Week.2 Week.3 Week.4
1 178.100 55.37805 -3.435973 United Kingdom 649,613 665,147 640,732 649,642
2 174.890 51.16569 10.451526 Germany 117,766 120,402 104,167 91,157
3 144.100 46.22764 2.213749 France 135,784 117,759 109,337 101,873
4 174.211 52.13263 5.291266 Netherlands 403,950 397,438 377,855 389,345
5 174.990 40.46367 -3.749220 Spain 94,472 95,742 88,313 86,400
6 178.600 56.26392 9.501785 Denmark 70,094 72,487 67,597 66,769
感謝の
library(shiny)
library(leaflet)
ui <- fluidPage(
selectInput("weekView", "Week's Revenue:",
c("1" = "Week.1",
"2" = "Week.2",
"3" = "Week.3")),
leafletOutput("mymap"),
p()
)
server <- function(input, output, session) {
output$mymap <- renderLeaflet({
x <- input$weekView
P<- read.csv("Lebara_weeks_rev4.csv")
as.numeric(P$Long)
as.numeric(P$Lat)
as.character(P$Week.1)
P$Week.1 <- as.numeric(gsub(",","",P$Week.1))
P$Week.2 <- as.numeric(gsub(",","",P$Week.2))
P$Week.3 <- as.numeric(gsub(",","",P$Week.3))
long <- P$Long
Lat <- P$Lat
leaflet(data = P) %>%
addTiles() %>% # Add default OpenStreetMap map tiles
addCircleMarkers(~Long, ~Lat, popup = ~Week.1,
radius = ~(Week.1)/40000,
stroke = FALSE,
fillOpacity = 0.5)
})
}
shinyApp(ui, server)
ヘッド! ピート
IはtidyrとsubsetWeek1 <を用い - P [1:7、そしてそれらのサブセットの)半径値に対するそれらが十分に小さい作るsubsetWeek1$value/40000
の変数を作りました。私は
library(tidyr)
P <- tidyr::gather(P, week, value, Week.1:Week.3)
subsetWeek1 <- P[1:7,]
subsetWeek2 <- P[8:14,]
subsetWeek3 <- P[15:21,]
Week1val <- subsetWeek1$value
Week2val <- subsetWeek2$value
Week3val <- subsetWeek3$value
これはselectInput
値をピックアップし、マップを変更していないようだ... selectInput 1 = subsetWeek1 $値、2 = subsetWeek2 $値および3 = subsetWeek3 $価値を作ってみました。マップ上にマーカーはなく、エラーは表示されません。サークルのスケールが目に見えないようにすることはできますか?非アプリ版では問題ありません。
あなたは[再現性]であるためにあなたの質問に十分なデータを追加する必要があります(http://stackoverflow.com/questions/5963269/how-to-make-a -great-r-reproducible-example)を使用します。 – alistaire
@alistaireこれはどうですか?すべてのコード。 dfのサンプルとそれ以上の説明。 –
もっと良いですが、すべてが第1週にハードコードされています。サーバー内で 'P'を簡単にサブセット化できるように、長い形式(例えば' tidyr :: gather(P、week、value、Week.1:week.4) ')選択された入力からの情報で機能します。サイドノート:サーバー機能の外部にデータをロードしてクリーンアップするので、一度だけ完了します。 – alistaire