全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5128 6
2011-11-13
我想用R来连接Excel,用odbcConnectExcel来做的,程序如下:
sheet<-'D:\\projcect\\renew\\a.xls'
con<-odbcConnectExcel(sheet)
tb<-sqlTables(con)
qry<-paste("select member_id from ",tb$TABLE_NAME,"where member_t='p'")
会有如下错误:
qry
[1] "42000 -3506 [Microsoft][ODBC Excel Driver] FROM 子句语法错误。"                       
[2] "[RODBC] ERROR: Could not SQLExecDirect 'select member_id from a$ where member_t='p''"

请问哪位大侠做过这个相关的,请指点下。先谢谢了!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-11-14 10:30:05
从错误提示信息来看,利用RODBC貌似不能直接进行SQL查询并提取数据,我没这样做过。

另外注意,你这里有一个语法错误,在RODBC的文件里已经提到过,对于EXCEL的表名称在做SQL查询时应当使用“[ ]”括起来才能正确查询,如表名称为Sheet1,用sqlTables()函数看到的是“Sheet1$”,在做查询的时候要使用“[Sheet1$]”才可以。

因此你的语句可以改为:
复制代码
之后再使用查询函数:
复制代码
这样就可以提取这个EXCEL表的数据。
至于到底能否使用SQL查询,可以自己试一下。
毕竟EXCEL不是专业或开源数据库,现在对于MS-Office文件的兼容都是使用倒推的方法,因此兼容性肯定不好,还是建议全部提取数据给一个data.frame,然后在R里进行操作,非常方便的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-14 11:35:14
谢谢kiddbai,我试过了,可以的,非常感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-14 15:52:36
嗯,数据量大的话,装个MySQL吧,那个更好用,呵呵!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-14 18:29:37
kiddbai 发表于 2011-11-14 15:52
嗯,数据量大的话,装个MySQL吧,那个更好用,呵呵!
最近在研究文本挖掘的东西,数据量会比较大,处理文本的操作会比较多,会用到一些perl正则表达式的东西,还没有试着连过MySQL。不知道好不好连接,应该也挺好玩的,呵呵!可能以后还会找你请教的,哈哈!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-11-15 10:40:27
飘洒 发表于 2011-11-14 18:29
最近在研究文本挖掘的东西,数据量会比较大,处理文本的操作会比较多,会用到一些perl正则表达式的东西, ...
我也是初学,呵呵,不过既然处理大量的数据,还是应当用MySQL,毕竟免费的,很强大,连Google都用,应该是没有做不了的事情了。另外,强烈建议你把RODBC的文档好好读一遍,不知你读没读,我读了两遍,很多看不懂,但是很多看懂的已经很管用了,尤其是关于MySQL的。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群