for 循环 - 替换的长度为零
for Loop - Replacement has length zero
循环有点问题。这是循环的代码:
for (i in 1:length(input$count))
{
id<-paste("text",i)
titles[i]<-input$id
}
这个returns下面的错误
Error in titles[i] <- input$id : replacement has length zero
ui.R
library(shiny)
ui <- fluidPage(
numericInput("count", "Number of textboxes", 3),
hr(),
uiOutput("textboxes")
)
server.R
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??
})
})
}
此错误表明您的输入 ID 为 NULL 或长度为 0 的向量:确保索引正确。
此外,在 R 中通常最好避免 for 循环,因为它们往往非常慢:请参阅 Why are loops slow in R?。几乎总有一种方法可以避免使用 for 循环并改用矢量化函数,尽管目前的示例没有提供足够的细节来实际建议一个函数。
循环有点问题。这是循环的代码:
for (i in 1:length(input$count))
{
id<-paste("text",i)
titles[i]<-input$id
}
这个returns下面的错误
Error in titles[i] <- input$id : replacement has length zero
ui.R
library(shiny)
ui <- fluidPage(
numericInput("count", "Number of textboxes", 3),
hr(),
uiOutput("textboxes")
)
server.R
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??
})
})
}
此错误表明您的输入 ID 为 NULL 或长度为 0 的向量:确保索引正确。
此外,在 R 中通常最好避免 for 循环,因为它们往往非常慢:请参阅 Why are loops slow in R?。几乎总有一种方法可以避免使用 for 循环并改用矢量化函数,尽管目前的示例没有提供足够的细节来实际建议一个函数。