manipulacion filtrar filas eliminar datos data comparar como columnas r shiny

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()}) })