如何解决如何串联闪亮的字符串列表?
我想根据用户输入生成一个字符串列表。但是,当我使用粘贴功能时,出现此错误:
object 'b' not found
我正在寻找一种返回所有输入值的方法,以便在服务器中以-
的形式显示或进一步使用这些输入值。例如:
LV =~ x1 + x2 + x3
LV ~ LV1
以此类推。
也许我需要将用户输入的值存储为无功值。但是我不确定该怎么做。
这是完整的代码:
library(shiny)
newlist <- as.list(c("LV","LV2","x1","x2","x3","x4","x5","x6"))
lvar <- function(...) {
params <- list(...)
stopifnot(length(params)%%2==0)
lefts = params[seq(1,length(params),by=2)]
rights = params[seq(2,by=2)]
rights <- Map(paste,rights,collapse="+")
paste(paste0(lefts," =~",rights),collapse="\n")
}
regs <- function(...) {
params <- list(...)
stopifnot(length(params)%%2==0)
lefts = params[seq(1,"~",collapse="\n")
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("variable1","Variable:",choices = c(' ',newlist),selected = NULL),selectInput("variable2",selected = NULL,multiple = TRUE),selectInput("variable3",selectInput("variable4",multiple = TRUE)
),mainPanel(
verbatimTextOutput("listout1"),verbatimTextOutput("listout2"),verbatimTextOutput("listout3"),verbatimTextOutput("listout4"),verbatimTextOutput("listout5")
)
)
)
server <- function(input,output) {
output$listout1 <- renderText({
input$variable1
})
output$listout2 <- renderText({
input$variable2
})
output$listout3 <- renderText({
a <- lvar(lefts = input$variable1,rights = input$variable2)
})
output$listout4 <- renderText({
b <- regs(lefts = input$variable3,rights = input$variable4)
})
output$listout5 <- renderText({
paste(a,b,sep = "/n")
})
}
shinyApp(ui = ui,server = server)
解决方法
a
中的
b
和renderText
变量分配不适用于服务器中的其他功能。
试试:
library(shiny)
newlist <- as.list(c("LV","LV2","x1","x2","x3","x4","x5","x6"))
lvar <- function(...) {
params <- list(...)
stopifnot(length(params)%%2==0)
lefts = params[seq(1,length(params),by=2)]
rights = params[seq(2,by=2)]
rights <- Map(paste,rights,collapse="+")
paste(paste0(lefts," =~",rights),collapse="\n")
}
regs <- function(...) {
params <- list(...)
stopifnot(length(params)%%2==0)
lefts = params[seq(1,"~",collapse="\n")
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
selectInput("variable1","Variable:",choices = c(' ',newlist),selected = NULL),selectInput("variable2",selected = NULL,multiple = TRUE),selectInput("variable3",selectInput("variable4",multiple = TRUE)
),mainPanel(
verbatimTextOutput("listout1"),verbatimTextOutput("listout2"),verbatimTextOutput("listout3"),verbatimTextOutput("listout4"),verbatimTextOutput("listout5")
)
)
)
server <- function(input,output) {
output$listout1 <- renderText({
input$variable1
})
output$listout2 <- renderText({
input$variable2
})
output$listout3 <- renderText({
#a <-
lvar(lefts = input$variable1,rights = input$variable2)
})
output$listout4 <- renderText({
#b <-
regs(lefts = input$variable3,rights = input$variable4)
})
output$listout5 <- renderText({
paste(lvar(lefts = input$variable1,rights = input$variable2),regs(lefts = input$variable3,rights = input$variable4),sep = "\n") # changed /n to \n
})
}
shinyApp(ui = ui,server = server)
如果您希望a
和b
可用于其他功能,则应使用reactive values。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。