r - R/Shiny:带有长度为零的参数的 If 语句
问题描述
我是 R/Shiny 的新手,我想弄清楚如何做一个非常简单的if
陈述。我有一个observeEvent
无论出于何种原因被触发两次......现在不担心这个。可以在inFile$datapath
有实际数据路径的地方触发,也可以在inFile$datapath
没有文件路径的地方触发。我正在尝试写一个if
声明来区分两者。
shinyFileChoose(input,'file', session=session,roots=c(wd='.'))
observeEvent(input$file, {
#print(input$file)
inFile <- parseFilePaths(roots=c(wd='.'), input$file)
print(inFile$datapath)
if (inFile$datapath == "") {
print("File Exists")
}
else {
session$reload()
print("No file found.")
}
})
在print(inFile$datapath)
它输出character(0)
. if
如果不给我错误,我无法想出在我的声明中成功测试该值的方法Error in if: argument is of length zero
。
解决方案
闪亮的输入在程序启动时为空。您必须在观察事件中处理好这一点。
observeEvent(input$file, {
if (!is.null(input$file)){
#print(input$file)
inFile <- parseFilePaths(roots=c(wd='.'), input$file)
print(inFile$datapath)
if (inFile$datapath == "") {
print("File Exists")
}
else {
session$reload()
print("No file found.")
}
}
})
推荐阅读
- rust - 如何仅从 Cargo 运行构建脚本?
- python - 我们可以让我们的程序安装在任何 Linux 发行版中吗?
- python - 在python中使用多处理时子进程完成但不退出
- google-apps-script - 谷歌应用脚本复制并重命名标签并获取最后一个标签名称+1
- java - 未为多模块 Java maven 项目正确设置工作目录
- c# - Powershell c# 模块,从 cmdlet 更改提示
- java - Ajax 看不到 Post Controller
- c# - 为什么我无法在使用 LINQ 的 GroupBy 后进行计数
- nginx - 创建入口网关是否有任何限制
- python - (TypeError: Bird() 不接受任何参数。)