第1个回答 2019-03-04
做分析没有数据真是一大悲剧,正是无源之水、无根之木再加上无米之炊。通常我们搜寻到的数据格式主要有文本格式、excel格式和spss格式。当然也会有从数据库等其它途径进来,这不在本文讨论范围内。
一般的文本格式导入,都可以用read.table命令把数据扔进r里面。excel和spss数据的话,可用相应软件将文件打开,观察数据结构后将其复制到剪贴板,然后一样可以用read.table('clipboard')扔到r里面。如果文件太大不好复制,那么可以利用excel和spss的导出功能,将数据导出成文本格式。
还有一种情况就是,你的计算机上没有安装excel或是spss,这数据导入就要用到rodbc扩展包了。首先装载rodbc包。然后输入数据文件的绝对路径(要注意是用/而不是\)来定义连接,最后用数据抓取命令获取你需要的标签页数据内容(sheet1)。
library(rodbc)
channel=odbcconnectexcel("d:/test.xls")
mydata=sqlfetch(channel,'sheet1')这样简单的两个步骤就可以将excel数据导入r的mydata变量中。如果是excel2007格式数据则要换一个函数
channel=odbcconnectexcel2007('d:/test.xlsx')
mydata=sqlfetch(channel,'sheet1')导入spss的sav格式数据则要用到foreign扩展包,加载后直接用read.spss读取sav文...做分析没有数据真是一大悲剧,正是无源之水、无根之木再加上无米之炊。通常我们搜寻到的数据格式主要有文本格式、excel格式和spss格式。当然也会有从数据库等其它途径进来,这不在本文讨论范围内。
一般的文本格式导入,都可以用read.table命令把数据扔进r里面。excel和spss数据的话,可用相应软件将文件打开,观察数据结构后将其复制到剪贴板,然后一样可以用read.table('clipboard')扔到r里面。如果文件太大不好复制,那么可以利用excel和spss的导出功能,将数据导出成文本格式。
还有一种情况就是,你的计算机上没有安装excel或是spss,这数据导入就要用到rodbc扩展包了。首先装载rodbc包。然后输入数据文件的绝对路径(要注意是用/而不是\)来定义连接,最后用数据抓取命令获取你需要的标签页数据内容(sheet1)。
library(rodbc)
channel=odbcconnectexcel("d:/test.xls")
mydata=sqlfetch(channel,'sheet1')这样简单的两个步骤就可以将excel数据导入r的mydata变量中。如果是excel2007格式数据则要换一个函数
channel=odbcconnectexcel2007('d:/test.xlsx')
mydata=sqlfetch(channel,'sheet1')导入spss的sav格式数据则要用到foreign扩展包,加载后直接用read.spss读取sav文件
library(foreign)
mydata=read.spss('d:/test.sav')上面的函数在很多情况下没能将sav文件中的附加信息导进来,例如数据的label,那么建议用hmisc扩展包的spss.get函数,效果会更好一些。