我正在尝试使用sqldf和在R中创建的数据帧。我的表有2列逻辑向量。我的代码看起来像sqldf("Select* from df where Dupe1='TRUE' or Dupe2='TRUE' '' )
。它返回Error:意外的数字常量。不明白这意味着什么。我假设sql无法读取R的逻辑向量。任何解决方案都将不胜感激。
答案 0 :(得分:1)
可能就是如何复制内容,但在你的问题中,你的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