sqldf无法读取R中的逻辑向量

sqldf无法读取R中的逻辑向量,sql,r,logical-operators,sqldf,Sql,R,Logical Operators,Sqldf,我试图将sqldf与在R中创建的数据帧一起使用。我的表有两列逻辑向量。我的代码看起来像来自df的sqldfSelect*,其中Dupe1='TRUE'或Dupe2='TRUE'。它返回错误:意外的数值常量。我不明白这意味着什么。我假设sql不能读取R的逻辑向量。任何解决方案都将不胜感激。这可能只是复制内容的方式,但在您的问题中,sql语句以两个单引号结束,而不是双引号。但这里最大的问题是,TRUE和FALSE不能存储为字符串。TRUE存储为1。FALSE存储为0。下面的代码就是你想要的。我添加了

我试图将sqldf与在R中创建的数据帧一起使用。我的表有两列逻辑向量。我的代码看起来像来自df的sqldfSelect*,其中Dupe1='TRUE'或Dupe2='TRUE'。它返回错误:意外的数值常量。我不明白这意味着什么。我假设sql不能读取R的逻辑向量。任何解决方案都将不胜感激。

这可能只是复制内容的方式,但在您的问题中,sql语句以两个单引号结束,而不是双引号。但这里最大的问题是,TRUE和FALSE不能存储为字符串。TRUE存储为1。FALSE存储为0。下面的代码就是你想要的。我添加了一个行号,以便我们可以看到选择了哪些行

library(sqldf)

## Create test data
RowNum = 1:20
Dupe1 = runif(20) > 0.5
Dupe2 = runif(20) > 0.5
df = data.frame(RowNum, Dupe1, Dupe2)

sqldf("Select * from df where Dupe1=1 OR Dupe2=1")

   RowNum Dupe1 Dupe2
1       3  TRUE  TRUE
2       5  TRUE  TRUE
3       6 FALSE  TRUE
4       9  TRUE  TRUE
5      10 FALSE  TRUE
6      13 FALSE  TRUE
7      14  TRUE  TRUE
8      15 FALSE  TRUE
9      17 FALSE  TRUE
10     18 FALSE  TRUE
11     20 FALSE  TRUE

在R和任何符合SQL的数据库中,值True和False都不会被引用为字符串文本。或者从df中选择sqldfSelect*,其中Dupe1或Dupe2