Ключевое слово, которое включает определенную часть кадра данных в Shiny? - PullRequest
0 голосов
/ 11 сентября 2018

Фрейм данных имеет 5 столбцов, один из которых выглядит следующим образом:

colors
12 red
12 red
34 grey
32 cyan
14 black

Я хотел бы вернуть только те данные, в которых слово «красный» выделено в цветах столбцов.Все столбцы.

код:

df[df$colors %like% "red", ]

Я делаю блестящее приложение, которое будет читать csv из определенного места (исправлено).Пользователь не сможет изменить файл, который читается, только через исходный код.

Я хотел бы попросить слово, похожее на пароль, прежде чем человек начнет работать с приложением.В зависимости от слова, которое он использует, часть набора данных будет им доступна.

Например, если они передадут слово:

pass1 

будет виден только df[df$colors %like% "red", ].

Как я могу подойти к этому?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете использовать пары ключ-значение.В R это делается путем определения двух векторов - одного как вектора ключей, а другого как вектора значений и использования names () для «присвоения имен» значениям.Вот решение на основе предоставленных вами образцов данных:

library(shiny)
library(dplyr)

# Dummy data
val <- c(12, 12, 34, 32, 14)
color <- c("red", "red", "grey", "cyan", "black")
foo <- cbind.data.frame(val, color)

ui =  fluidPage(
  textInput("pswd", "Enter password:"),
  tableOutput("table1")
)

server = function(input, output, session) {

  # Keys
  passwords <- c("pass1", "pass2", "pass3", "pass4") #....and so on
  # Values
  colors.filter <- c("red", "grey", "cyan", "black") #....and so on
  # Assign names to make key-value pairs
  names(colors.filter) <- passwords

  # Subset data - select only corresponding value for input key
  bar <- reactive({
    filter(foo, color %like% colors.filter[input$pswd])
  })

  output$table1 <- renderTable({
    bar()
  })

} 

shinyApp(ui,server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...