R 对于循环-替换的长度为零

R 对于循环-替换的长度为零,r,for-loop,shiny,R,For Loop,Shiny,我对循环有点小问题。以下是循环的代码: for (i in 1:length(input$count)) { id<-paste("text",i) titles[i]<-input$id } for(1中的i:长度(输入$count)) { id此错误表示您的输入id为NULL或长度为0的向量:确保索引正确 此外,在R中,通常最好避免for循环,因为它们往往非常慢:请参阅。几乎总是有一种方法可以避免使用for循环而改用矢量化函数,尽管目

我对循环有点小问题。以下是循环的代码:

for (i in 1:length(input$count))
{       
    id<-paste("text",i)
    titles[i]<-input$id
}
for(1中的i:长度(输入$count))
{       

id此错误表示您的输入id为NULL或长度为0的向量:确保索引正确


此外,在R中,通常最好避免for循环,因为它们往往非常慢:请参阅。几乎总是有一种方法可以避免使用for循环而改用矢量化函数,尽管目前的示例没有提供足够的细节来实际建议函数。

您可能需要阅读,这提高了f的概率或者得到一个非常有用的答案。你可能会发现这篇优秀的文章也很有帮助。谢谢你,Gregory。你是对的,当我试图打印id值时,它显示为NULL。但是我不明白为什么它显示为NULL。我已经编辑了我的问题并附加了ui.R和server.R。请看一下代码并帮助我输入如果您尝试在那里打印它,它将不存在。如果您想在uiOutput中显示元素,它们必须从renderUI表达式返回到列表中。您需要将数值输入保存到返回列表中。
library(shiny)
ui <- fluidPage(
numericInput("count", "Number of textboxes", 3),                  
hr(),
uiOutput("textboxes")
)
server <- function(input, output, session) {
   output$textboxes <- renderUI({
   if (input$count == 0)
      return(NULL)
  lapply(1:input$count, function(i) {
      id <- paste0("text", i)
      print(id)            // its prints the text1, text2,text3
      numericInput(id, NULL, value = abc)
      print(input$text1)   //it should print value abc , but it is not, why??

    })
  })
}