0

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'
)


 })

しかし、私はまだ同じエラーが発生します。あなたの助けは大歓迎です!

4

0 に答える 0