java调用shiny_在Shiny中定义变量(动态)

我正在创建一个闪亮的应用程序,允许您上传包含一些数据(相关和独立变量)的excel文件,以便运行线性回归 .

我正在使用read.xlsx加载excel文件,该文件将在第一个选项卡中输出一个表 . 在第二个选项卡中,我想要一个小部件,它允许您选择因变量和另一个输入小部件,要求您选择自变量 . 这些变量将是加载的数据列 Headers 的函数 . 因此假设加载的数据如下所示:

A B C D E F G

22000 0.605 0.352 1.125 103.5 162 7107.263017

22000 0.495 0.352 1.375 126.5 162 4569.734496

22000 0.495 0.352 1.375 103.5 198 4649.524562

18000 0.495 0.352 1.125 126.5 198 4495.776272

其中G是自变量 . 我希望列 Headers 可以用作第二个选项卡上变量选择的基础 . 我面临的问题是将加载的excel文件头(列名)链接为我的变量选择器,因为我在我的UI中将它们定义为我选择的变量:

selectizeInput('inv',"In", choices = var, multiple = TRUE),

selectizeInput('out',"Out", choices = pred, multiple = FALSE)

因此var和pred在服务器下定义,因此生成错误:找不到对象'var' .

我该如何解决这个问题 . 这是到目前为止的代码:

ui

titlePanel("Hi"),

sidebarLayout(position = "left",

sidebarPanel(

conditionalPanel(condition = "input.tabs1==1",

tags$style(type='text/css', ".well { max-width: 20em; }"),

# Tags:

tags$head(

tags$style(type="text/css", "select[multiple] { width: 100%; height:10em}"),

tags$style(type="text/css", "select { width: 100%}"),

tags$style(type="text/css", "input { width: 19em; max-width:100%}")

),

# Select filetype:

selectInput("readFunction", "Function to read data:", c(

# Base R:

"read.table",

"read.csv",

"read.csv2",

"read.delim",

"read.delim2",

"readWorksheet",

"read_excel",

"read.xlsx"

)),

# Argument selecter:

htmlOutput("ArgSelect"),

# Argument field:

htmlOutput("ArgText"),

# Upload data:

fileInput("file", "Upload data-file:"),

# Variable selection:

htmlOutput("varselect"),

br(),

textInput("name","Dataset name:","Data")),

conditionalPanel(condition = "input.tabs1==2",

#fileInput('file', 'Choose file to upload.'),

selectizeInput('invar',"Select Regression Input Variables", choices = varnames, multiple = TRUE),

selectizeInput('outvar',"Select Regression Output Variable", choices = predictors, multiple = FALSE)

),

mainPanel(

tabsetPanel(id="tabs1",

tabPanel("Data File",value = 1,tableOutput("table")),

tabPanel("LM Plot", value=2, plotOutput("PlotLM")))

)

)

))

server

options(shiny.maxRequestSize=30*1024^2)

### Argument names:

ArgNames

Names

Names

return(Names)

})

# Argument selector:

output$ArgSelect

if (length(ArgNames())==0) return(NULL)

selectInput("arg","Argument:",ArgNames())

})

## Arg text field:

output$ArgText

fun__arg

if (is.null(input$arg)) return(NULL)

Defaults

if (is.null(input[[fun__arg]]))

{

textInput(fun__arg, label = "Enter value:", value = deparse(Defaults[[input$arg]]))

} else {

textInput(fun__arg, label = "Enter value:", value = input[[fun__arg]])

}

})

### Data import:

Dataset

if (is.null(input$file)) {

# User has not uploaded a file yet

return(data.frame())

}

args

argList

for (i in seq_along(args))

{

argList[[i]]

}

names(argList)

argList

Dataset

return(Dataset)

})

# Select variables:

output$varselect

if (identical(Dataset(), '') || identical(Dataset(),data.frame())) return(NULL)

# Variable selection:

selectInput("vars", "Variables to use:",

names(Dataset()), names(Dataset()), multiple =TRUE)

})

# Show table:

output$table

if (is.null(input$vars) || length(input$vars)==0) return(NULL)

return(Dataset()[,input$vars,drop=FALSE])

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值