sqldf 查询 returns 0 个值

sqldf query returns 0 values

我在对示例数据集进行基本查询时遇到问题 运行(下面的link) http://kbcdn.tableausoftware.com/data/Superstore.xls 使用 R.

我在下面附上了我的代码。

#read file with XLConnect
path <- file.path("/Users/petergensler/Desktop/Sample - Superstore Sales.xls")
superstore <- readWorksheetFromFile(path, sheet= "Orders")


 #Query
    test <- sqldf("SELECT * FROM superstore WHERE 'Product Sub-Category' = 'Appliances'",)
    test

查询执行正常,但 returns 结果如下:

[1] Row.ID               Order.ID             Order.Date           Order.Priority       Order.Quantity       Sales               
 [7] Discount             Ship.Mode            Profit               Unit.Price           Shipping.Cost        Customer.Name       
[13] Province             Region               Customer.Segment     Product.Category     Product.Sub.Category Product.Name        
[19] Product.Container    Product.Base.Margin  Ship.Date           
<0 rows> (or 0-length row.names)

我的附加包是否有问题导致查询 运行 错误,或者是我的数据有问题?我正在查询的列似乎没问题,因为它是一个类型字符,并且指定的文字字符串应该与值匹配(除非它们是尾随空格),对吗?

我 运行ning R 在 Mac OS X 10.11.5 上使用以下会话信息:

session_info() Session info ------------------------------------------------------------------------------------------- setting value
version R version 3.3.0 (2016-05-03) system x86_64, darwin13.4.0
ui RStudio (0.99.896)
language (EN)
collate en_US.UTF-8
tz America/Chicago
date 2016-06-08

我也附上了当前会话的包裹。

https://drive.google.com/open?id=0Bxhxg_yftHNubEc4NUZTUVoxa0E

感谢您的帮助!

跟进 G. Grothndieck 所说的(使用括号作为列名)我 运行 这对我有用:

#Query
test <- sqldf(x = "SELECT * FROM superstore WHERE [Product.Sub.Category] = 'Appliances'")
test

大多数读取数据框的方法将列名中的空格和连字符更改为 .,因此您需要更新这部分内容。