因此,我正在尝试从命名列表中进行选择,这在遵循 selectInput 参考页面时效果很好:
## Only run examples in interactive R sessions
if (interactive()) {
# basic example
shinyApp(
ui = fluidPage(
selectInput("variable", "Variable:",
c("Cylinders" = "cyl",
"Transmission" = "am",
"Gears" = "gear")),
tableOutput("data")
),
server = function(input, output) {
output$data <- renderTable({
mtcars[, c("mpg", input$variable), drop = FALSE]
}, rownames = TRUE)
}
)
# demoing optgroup support in the `choices` arg
shinyApp(
ui = fluidPage(
selectInput("state", "Choose a state:",
list(`East Coast` = c("NY", "NJ", "CT"),
`West Coast` = c("WA", …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将foreach与并行后端一起使用以加快计算速度(如果这很重要,可以对{AUCRF}随机森林进行交叉验证以进行特征选择)。在这样做的过程中,我需要获取向量的子集。向量的名称可以更改,但可以作为字符向量访问。我使用eval(parse())构造(好主意?)来获取向量的子集。
例:
library(parallel)
library(foreach)
library(stats)
#create cluster
clu <- makeCluster(detectCores() - 1)
registerDoParallel(clu, cores = detectCores() - 1)
bar<-c("a","b","c","d")
rab<-c(2,3)
bar.name<-"bar"
#expected output in this example is a list containing ten times
bar[rab]
#or
eval(parse(text=paste(bar.name,"[rab]",sep="")))
foo<-foreach(m = 1:10, .packages = c("stats")) %dopar% {
sink("foreach.txt")
print(bar.name)
print(parse(text=paste(bar.name,"[rab]",sep="")))
print(eval(parse(text=paste(bar.name,"[rab]",sep=""))))
foo.temp<-eval(parse(text=paste(bar.name,"[rab]",sep="")))
return(foo.temp)
}
sink()
stopCluster(clu)
Run Code Online (Sandbox Code Playgroud)
但是我得到以下错误:
Error in { : task 1 failed - "Object 'bar' not found"
Run Code Online (Sandbox Code Playgroud)
我以为每个工作人员都会得到一个包含所有对象的工作区副本。知道我在做什么错吗?