Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 运行sqlite时为空变量_R_Sqlite_Empty List - Fatal编程技术网

R 运行sqlite时为空变量

R 运行sqlite时为空变量,r,sqlite,empty-list,R,Sqlite,Empty List,因此,我在R中将一个变量设置为sqlite查询,如下所示: query<-paste("SELECT ID FROM DataTable WHERE Name = \'", X, "\'", sep="") xid<-dbGetQuery(conn, query) 但是如果X不在数据库中,那么xid就是 0 obs of 1 variables 我不能使用exists(),或Length()或is.integer()或is.null()或我能想到的任何东西来区分它们,因为它们都存

因此,我在R中将一个变量设置为sqlite查询,如下所示:

query<-paste("SELECT ID FROM DataTable WHERE Name = \'", X, "\'", sep="")
xid<-dbGetQuery(conn, query)
但是如果X不在数据库中,那么xid就是

0 obs of 1 variables
我不能使用
exists()
,或
Length()
is.integer()
is.null()
或我能想到的任何东西来区分它们,因为它们都存在,长度相同且不为null

我相信这很简单,但我对这很陌生(显然)


感谢您的帮助。

dbGetQuery
返回数据帧。在第一种情况下,它有一行,因此
nrow(xid)
应该是1。在第二种情况下,它应该返回一个具有零行的数据帧,因此
nrow(xid)
应该为零。只需检查行数。

您可以使用
nrow
dim
这里是一个可复制的示例:

library(RSQLite)
driver <- dbDriver("SQLite")
conn <- dbConnect(driver, dbname='DB_KEY')

mydf <- read.table(text ='ID    NAme
1   2   OtherData1
2   2   OtherData2
3   2   OtherData3
4   2   OtherData4
5   2   OtherDat',head=T)

dbWriteTable(conn, "DataTable", mydf, append=TRUE)
dbDisconnect(conn)
X <- 'OtherData1'
query<-paste("SELECT type FROM Data1 WHERE name = \'", X , "\'", sep="")
conn <- dbConnect(driver, dbname='DB_KEY')
xid<-dbGetQuery(conn, query)

dim(xid)
[1] 1 1
dim(xid.notexist)
[1] 0 1
库(RSQLite)
司机
library(RSQLite)
driver <- dbDriver("SQLite")
conn <- dbConnect(driver, dbname='DB_KEY')

mydf <- read.table(text ='ID    NAme
1   2   OtherData1
2   2   OtherData2
3   2   OtherData3
4   2   OtherData4
5   2   OtherDat',head=T)

dbWriteTable(conn, "DataTable", mydf, append=TRUE)
dbDisconnect(conn)
X <- 'OtherData1'
query<-paste("SELECT type FROM Data1 WHERE name = \'", X , "\'", sep="")
conn <- dbConnect(driver, dbname='DB_KEY')
xid<-dbGetQuery(conn, query)

dim(xid)
[1] 1 1
dim(xid.notexist)
[1] 0 1