我在对样本数据集运行基本查询时遇到问题(链接如下) 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
查询执行正常,但它返回以下结果:
[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)
我的附加软件包是否有问题会导致查询运行错误,或者是否与我的数据有关?我查询的列似乎没问题,因为它是一个类型字符,指定一个文字字符串应该匹配值(除非它们是尾随空格),对吗?
我在Mac OS X 10.11.5上使用以下会话信息运行R:
SESSION_INFO() 会话信息------------------------------------------------ ------------------------------------------- 设定值
版本R版本3.3.0(2016-05-03) system x86_64,darwin13.4.0
ui RStudio(0.99.896)
语言(EN)
整理en_US.UTF-8
tz America / Chicago
日期2016-06-08
我还附加了附加到当前会话的包。
https://drive.google.com/open?id=0Bxhxg_yftHNubEc4NUZTUVoxa0E
感谢您的帮助!
答案 0 :(得分:0)
跟进G. Grothndieck所说的(使用括号作为列名)我跑了这个,它对我有用:
#Query
test <- sqldf(x = "SELECT * FROM superstore WHERE [Product.Sub.Category] = 'Appliances'")
test
数据框中的大多数阅读方法都会将列名称中的空格和连字符更改为.
,因此您需要更新其中的部分内容。