gpt4 book ai didi

r - Shiny 的渲染UI错误

转载 作者:行者123 更新时间:2023-12-02 21:22:27 25 4
gpt4 key购买 nike

我使用renderUI编写了一个小型的Shiny应用程序。它运行正确,但 R 控制台抛出错误消息

Error in if (nchar(locus) == 12) { : argument is of length zero

每次我运行这个应用程序时。

这是我的脚本。

服务器.R:

load("rapmsu.rda")
convMSU <- function(locus="Os02g0677300") {
if (nchar(locus)==12) {
return(rapmsu[rapmsu$rap==locus,])
} else {
return(NULL)
}
}
convRap <- function(locus="LOC_Os03g57940") {
if (nchar(locus)==14) {
return(rapmsu[rapmsu$msu==locus,])
} else {
return(NULL)
}
}
convID <- function(query="", text="") {
if (query=="RAPdb Locus") {
return(convMSU(text))
} else if (query=="MSU Locus") {
return(convRap(text))
}
}

query.intext.conv <- c("Os02g0677300", "LOC_Os03g57940")
names(query.intext.conv) <- c("RAPdb Locus", "MSU Locus")

#### Shiny
shinyServer(function(input, output) {

output$inTextconv <- renderUI({
textInput("inTextconv", strong("Put your query here:"),
value=query.intext.conv[input$queryconv])
})

output$mytable10 = renderDataTable({
convID(input$queryconv, input$inTextconv)
}, options = list(aLengthMenu = 1, iDisplayLength = 1,
bFilter = FALSE, bAutoWidth = FALSE)
)
})

ui.R:

shinyUI(fluidPage(  
fluidRow(
absolutePanel(
br(),

selectInput("queryconv", h4("* Convert ID of MSU genomic locus
and RAPdb genomic locus"),
choices=c("RAPdb Locus", "MSU Locus")),

uiOutput("inTextconv"),

tabsetPanel(
tabPanel(strong('Result'), dataTableOutput("mytable10"))
),

br(),

right=5, left=10
)
)
))

变量“rapmsu”是一个数据框。

> head(rapmsu)
rap msu
1 Os01g0100100 LOC_Os01g01010
2 Os01g0100200 LOC_Os01g01019
3 Os01g0100300 None
4 Os01g0100400 LOC_Os01g01030
5 Os01g0100466 None
6 Os01g0100500 LOC_Os01g01040

最佳答案

确保您的函数中包含所有测试用例。首先测试 NULLNA,然后继续进行 nchar 评估。以下是您的函数之一的修改示例:

convMSU <- function(locus="Os02g0677300") {

if(is.null(locus) || is.na(locus))
{
return()
}

else if (nchar(locus)==12) {
return(rapmsu[rapmsu$rap==locus,])
}

else {
return()
}
}

正如您所看到的,我首先测试了 NULL 和 NA,然后评估了表达式。正如您的错误所示:参数长度为零

关于r - Shiny 的渲染UI错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26626379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com