R中的sqldf select语句不起作用?

时间:2014-06-23 22:32:40

标签: r sqldf

我在R中有一个包含8个变量的数据框myframe。然后使用sqldf加载library(sqldf)包。然后我运行命令:

proxyframe = sqldf("select a, b, c, d, e from myframe where c > 1000")

但是,当我使用proxyframe查看view(proxyframe)时,我发现c < 1000中包含明确的行实例。我做了一些进一步的调查,发现由于某种原因声明如下:

"0" < 6  # returns true
"22" > 6 # returns false

我正在寻找可能导致我的select语句返回奇数数据帧的任何一般提示或想法,以及它是否与R的奇怪使用比较运算符有关。我担心的是,某个列c是一个字符,并且没有应用正确的比较运算符 - 尽管我没有太多经验知道R如何在封面下工作或者这个包如何工作。

1 个答案:

答案 0 :(得分:2)

将角色列投射到真实:

> DF <- data.frame(a = "22", stringsAsFactors = FALSE)
> sqldf("select * from DF where cast(a as real) > 6")
   a
1 22