我在server.R方面有一个笨重的代码块,我觉得R语法应该允许我创建一两行,同时更灵活地使用某种lapply或do.call行
if(input$parVary == "area" && as.numeric(input$nTraces) > 3 )
{
area <- c(input$area, input$area2, input$area3, input$area4)
} else if(input$parVary == "area" && as.numeric(input$nTraces) > 2 )
{
area <- c(input$area, input$area2, input$area3)
} else if(input$parVary == "area" && as.numeric(input$nTraces) > 1 )
{
area <- c(input$area, input$area2)
} else
{
area <- input$area
}
但是我花了一天时间和大约十亿种不同的lapply,do.calls,reactive,get,c和观察组合
paste0('input$area', 1:as.numeric(input$nTraces))
我似乎无法找到正确的组合或找出我所缺少的反应性概念。它似乎与代码有关,不包括单个输入$ area1,输入$ area2等等......代码中任何地方的显式文本?
答案 0 :(得分:0)
我在上面的评论中说得太早了。我的特定代码最终需要条件来处理列表与单值的情况。但@NicE答案是我一直在寻找的答案。像
这样的五个部分 Genkai.ListControleMachine.Remove(Genkai.ListControleMachine.Where(X => X.ComputerName == "M57095").Single());
与后来合作
if(input$parVary == "area" && as.numeric(input$nTraces) > 1 )
{
area <- lapply(paste0("area",1:as.numeric(input$nTraces)),function(x) input[[x]])
} else
{
area <- input$area1
}
得到我想要的东西。