首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在闪亮的反应结构中的子集a数据

在闪亮的反应结构中的子集a数据
EN

Stack Overflow用户
提问于 2015-03-27 11:38:28
回答 1查看 4.8K关注 0票数 4

我无法在反应性的闪亮结构中子集数据,并将其显示为表。如果我尝试只显示dataframe,我可以但不能子集和显示。我相信它必须用input$的使用方式来做些什么。

请帮帮忙,我对闪亮很陌生

数据集

代码语言:javascript
复制
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

代码语言:javascript
复制
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")))))

server.R

代码语言:javascript
复制
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()})

 })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 11:49:04

之所以发生这种情况,是因为您只选择了b数据帧的一个列。此子设置的结果是向量,而不是数据帧,因此renderDataTable无法呈现它。

可以在反应性表达式中将向量转换为数据帧:

代码语言:javascript
复制
  datum<-reactive({
    d <- b[,input$col]
    d <- as.data.frame(d)
    colnames(d) <- input$col
    d
  })

一个简单的解决方案使用@docendo弟子的评论:

代码语言:javascript
复制
datum<-reactive({ d<-b[,input$col,drop=FALSE] 
d })
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29299827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档