我目前有一个Shiny代码,该代码需要几个不同的反应性数据集,但是这些顺序生成的代码到我认为使用lapply
会随着数据集数量的增加而变得更加有意义。
repFunction1 <- reactive({
iris$Species[1]
)}
repFunction2 <- reactive({
iris$Species[2]
)}
repFunction3 <- reactive({
iris$Species[3]
)}
我尝试用lapply
复制此文件的尝试如下:
lapply(1:3, function(i){
paste0('repFunction', i) <- reactive({
iris$Species[i]
})
})
#Both above and below don't work
lapply(1:3, function(i){
assign(paste0('repFunction', i), reactive({
iris$Species[i]
})
)
})
由于这两种方法都不起作用,是否有任何方法可以不必一遍又一遍地重复相同的代码?
答案 0 :(得分:0)
尝试一下:
lapply(1:3, function(i) {
output[[ paste0("repFunction", i) ]] <- reactive({
iris$Species[i]
})
})
答案 1 :(得分:0)
您可以将电抗性导体放在列表中:
reactives <- lapply(1:3, function(i){
reactive({
iris$Species[i]
})
})
names(reactives) <- paste0('repFunction', 1:3)
然后通过执行reactives[["repFunction1"]]
或reactives[[1]]
来调用第一个。