从excel,txt中读取数据

2015-01-04  本文已影响426人  luoluo2014

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。很开心!!

明天继续!

上一篇下一篇

猜你喜欢

热点阅读