filtrar - Subconjunto de un marco de datos dentro de la estructura reactiva brillante
filtrar un data frame (1)
Esto sucede porque está seleccionando solo una columna del marco de datos b
. El resultado de este subconjunto es un vector, no un marco de datos, por lo que renderDataTable
no puede representarlo.
Puede convertir el vector a un marco de datos en su expresión reactiva:
datum<-reactive({
d <- b[,input$col]
d <- as.data.frame(d)
colnames(d) <- input$col
d
})
Una solución más fácil usando @docendo discimus''s comment:
datum<-reactive({ d<-b[,input$col,drop=FALSE]
d })
No puedo subconjuntar un marco de datos dentro de una estructura brillante reactiva y mostrarlo como una tabla. Si trato de mostrar solo el marco de datos, puedo pero no puedo subconjuntar ni mostrar. Creo que tiene que hacer algo con la forma en que se usa input$
.
Por favor ayuda, soy bastante nuevo en brillante
Dataset
dput(b)
structure(list(Date = c("1-Jan", "2-Jan", "3-Jan"), Month = c("Jan",
"Jan", "Jan"), Days = c("Thu", "Fri", "Sat"), A = c(30712L, 26842L,
21640L), B = c(26505L, 25906L, 22929L), C = c(22128L, 26814L,
22091L), D = c(30994L, 23935L, 20048L), E = c("38%", "51%", "37%"
), F = c(71L, 70L, 71L), G = c(91L, 114L, 104L), H = c(77L, 98L,
91L), I = c(-4621L, -463L, 291L), J = c("-32.00%", "-3.30%",
"2.00%")), .Names = c("Date", "Month", "Days", "A", "B", "C",
"D", "E", "F", "G", "H", "I", "J"), class = "data.frame", row.names = c(NA,
-3L))
ui.R
library(shiny)
library(shinythemes)
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
selectInput(inputId = "col", label = "Columns",choices = colnames(b[4:8]),selected = colnames(b[4]))),
mainPanel(dataTableOutput(outputId = "table")))))
servidor.R
library(shiny)
library(shinythemes)
library(ggplot2)
library(dplyr)
b<-read.csv("newb.csv",header=TRUE,sep=",",stringsAsFactors=FALSE)
shinyServer(function(input, output) {
datum<-reactive({
d<-b[,input$col]
return(d)
})
output$table<-renderDataTable({datum()})
})