switch ステートメントを使用して異なるデータフレームを選択するための selectInput があります。
私の「プレーヤー」データセットは次のようになります。
Player Pos Age Team G GS MPG FG FGA FG% 3P 3PA 3P% 2P 2PA 2P% eFG% FT FTA FT% ORB DRB TRB AST STL BLK
1 Álex Abrines SG 24 OKC 75 8 15.1 1.5 3.9 0.395 1.1 2.9 0.380 0.4 0.9 0.443 0.540 0.5 0.6 0.848 0.3 1.2 1.5 0.4 0.5 0.1
2 Quincy Acy PF 27 BRK 70 8 19.4 1.9 5.2 0.356 1.5 4.2 0.349 0.4 1.0 0.384 0.496 0.7 0.9 0.817 0.6 3.1 3.7 0.8 0.5 0.4
3 Steven Adams C 24 OKC 76 76 32.7 5.9 9.4 0.629 0.0 0.0 0.000 5.9 9.3 0.631 0.629 2.1 3.8 0.559 5.1 4.0 9.0 1.2 1.2 1.0
4 Bam Adebayo C 20 MIA 69 19 19.8 2.5 4.9 0.512 0.0 0.1 0.000 2.5 4.8 0.523 0.512 1.9 2.6 0.721 1.7 3.8 5.5 1.5 0.5 0.6
5 Arron Afflalo SG 32 ORL 53 3 12.9 1.2 3.1 0.401 0.5 1.3 0.386 0.7 1.7 0.413 0.485 0.4 0.5 0.846 0.1 1.2 1.2 0.6 0.1 0.2
6 Cole Aldrich C 29 MIN 21 0 2.3 0.2 0.7 0.333 0.0 0.0 NA 0.2 0.7 0.333 0.333 0.1 0.3 0.333 0.1 0.6 0.7 0.1 0.1 0.0
私の「チーム」データセットは次のようになります。
Team W L W/L% GB PS/G PA/G SRS Conference Season
1 Toronto Raptors* (1) 59 23 0.720 — 111.7 103.9 7.29 Eastern 2017-2018
2 Boston Celtics* (2) 55 27 0.671 4.0 104.0 100.4 3.23 Eastern 2017-2018
3 Philadelphia 76ers* (3) 52 30 0.634 7.0 109.8 105.3 4.30 Eastern 2017-2018
4 Cleveland Cavaliers* (4) 50 32 0.610 9.0 110.9 109.9 0.59 Eastern 2017-2018
5 Indiana Pacers* (5) 48 34 0.585 11.0 105.6 104.2 1.18 Eastern 2017-2018
6 Miami Heat* (6) 44 38 0.537 15.0 103.4 102.9 0.15 Eastern 2017-2018
selectInput に基づいてデータセットを選択するスイッチ関数は次のようになります。
leaderboardDatasetInput <- reactive({
switch(
input$leaderboard_dataset_input,
"players" = d_season_combined,
"teams" = d_team_regular_raw,
"drafts" = d_draft
)})
データセットが異なるため、別の列を「ベース」として割り当てて、データをプロットしたいと考えています。私の「プレーヤー」データセットには「プレーヤー」が「基本列」としてあり、「チーム」データセットには「チーム」がその基本列として含まれています。
leaderboardCharColumn <- reactive({
switch(
leaderboardDatasetInput(),
"players" = Player,
"teams" = Team,
"draft" = Player
)})
次のようにselectInputから値にアクセスしようとしました:
leaderboard <- reactive({
datasetInput() %>%
select(leaderboardCharColumn ())
})
ただし、戻り値はデータセットからの変数として認識されません。私が得るエラーは言う:
EXPR must be a length 1 vector
私もget()を使用しようとしました:
leaderboard <- reactive({
datasetInput() %>%
select(get(leaderboardCharColumn ()))
})
as.symbol():
leaderboard <- reactive({
datasetInput() %>%
select(as.symbol(leaderboardCharColumn ()))
})
!!!:
leaderboard <- reactive({
datasetInput() %>%
select(!!!leaderboardCharColumn ())
})
また、「」を使用してswitchステートメントを放棄しました:
leaderboardCharColumn <- reactive({
switch(
datasetInput(),
"players" = 'Player',
"teams" = 'Team',
"draft" = 'Player'
)
})
しかし、私はまだ同じエラーが発生します。あなたの助けは大歓迎です!