r - if 函数中的语句未执行
问题描述
我用 RSQLite 创建了一个数据库, connection= conn
。在这个数据库中是一个dummy
带有key
和的数据表text
。
conn <- dbConnect(RSQLite::SQLite(), "~/path.db")
dbExecute(conn,"CREATE TABLE IF NOT EXISTS 'dummy' (
key CHAR(27) PRIMARY KEY,
text TEXT)")
我创建了一个函数dummy_func
。我的问题是,if (! is.null(conn))
当我用dummy_func("key1")
. 但是,如果我! is.null(conn)
在控制台中输入,我会得到一个TRUE
. 所以,条件应该有效,对吗?
key <- as.character("key1")
dummy_func <- function(key, conn=NULL)
{
if (! is.null(conn)) {
qry <-
dbSendQuery(conn,
"SELECT key FROM dummy WHERE key=key1")
dbBind(qry, key)
output <- dbFetch(qry)
}
if (! identical(output$key, character(0))) {
...
} else {
if (! is.null(conn)) {
qry2 <-
dbSendQuery(
conn,
"INSERT INTO dummy (key,text) VALUES(?,?)"
)
}
}
}
}
dummy_func("key1")
这是您可以看到的错误消息,即output
未创建。
Error in identical(output$key, character(0)) : object 'output' not found
解决方案
推荐阅读
- python - 我们如何在 Python 中将接收到的数据转换为 JSON 格式
- excel - 在excel中为同一列中的值组创建平均值列
- python - 在python中实现PCA和k最近
- angular - 离子项目中 f5 后的不同设置
- php - 选择 pdo 找不到像 & ' 这样的符号
- list - Windows Batch - 从列表中选择名称
- html - 溢出css属性不添加水平滚动条
- sql - 计算按另一列分组的表中每一列的百分比或非 NULL 行
- sql-server - 来自 SQL Server Linux 容器的错误 SYSDATETIME()
- amazon-web-services - 如何在 Lambda Edge 的云端请求标头中获取大陆?