从excel,txt中读取数据
1)剪切板
dat<-read.table("clipboard",header=T)
header=T为读入变量名
2)从文本文件读取
(X=read.table("1230.txt"))
3)从excel读取
X=read.table("1230.csv",sep=",")
excel单个工作簿存成csv格式,才能被R调用
而直接调用excel多个工作簿时,需要安装和调用RODBC包。
在http://mirror.bjtu.edu.cn/cran/网站上找到与自己的操作系统和R版本相对的ODBC包,下载到本地,再安装
library(RODBC)
> Rcode<-odbcConnectExcel("D:\\BI指标20140813.xlsx")
错误于odbcConnectExcel("D:\\BI指标20140813.xlsx") :odbcConnectExcel is only usable with 32-bit Windows
报错了,原因在于我的电脑为64位的,而RODBC包里的odbcConnectExcel函数只支持32位系统。
查看网上博客,看到有人用XLConnect包里的readWorksheetFromFile函数,试验过程为,从http://mirror.bjtu.edu.cn/cran/网站上找到与自己的操作系统和R版本相对的XLConnect包,仍然报错,提示还需要下载rJava包,下好后
> library(XLConnectJars)
> library(XLConnect)
>df=readWorksheetFromFile("12306.xlsx",sheet=1,header=TRUE)
错误: POIXMLException (Java): java.lang.reflect.InvocationTargetException
报错了,将excel文件存成.xls尝试
>df=readWorksheetFromFile("C:\\Users\\yxc\\Desktop\\12306.xls",sheet=2,header=TRUE)
错误: OutOfMemoryError (Java): Java heap space
还是报错。显示内存溢出,我的文件有59.8M,尝试将其中几条数据复制出来到1.xlsx
>df=readWorksheetFromFile("C:\\Users\\yxc\\Desktop\\1.xlsx",sheet=1,header=TRUE)
> df
[1] name be
OK了,R能读取的数据量太少了点吧,有点着急啊,如果连excel还不如,连SPSS都不如,那就让我太失望了,肯定是我的方法不对。上网搜,问群里的小伙伴,最后发现是我方法引用不对的问题,群里小伙伴告诉我,习惯用csv为好,于是按照他的方法,用了另外一个函数,read.table
> x=read.table("12306.csv",fill=TRUE)
成功了!
小伙伴说100G以下R都很happy。很开心!!
明天继续!