楼主: qoiqpwqr
17329 3

[学习分享] R语言编程入门之三:输入与输出 [转贴] [推广有奖]

院士

49%

还不是VIP/贵宾

-

威望
1
论坛币
132010 个
通用积分
9216.8339
学术水平
925 点
热心指数
1073 点
信用等级
703 点
经验
130949 点
帖子
3355
精华
1
在线时间
3497 小时
注册时间
2009-7-18
最后登录
2023-12-14

初级热心勋章 初级信用勋章 初级学术勋章 中级热心勋章 高级热心勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如同ATM机一样,你首先得输入银行卡,才能输出得到钞票。数据分析也是如此,输入输出数据在分析工作中有重要的地位。下面对R语言中一些重要的输入输出函数进行小结,而其它的函数请参考官方指南

1 读取键盘输入
如果只有很少的数据量,你可以直接用变量赋值输入数据。若要用交互方式则可以使用readline()函数输入单个数据,但要注意其默认输入格为字符型。scan()函数中如果不加参数则也可以用来手动输入数据。如果加上文件名则是从文件中读取数据。

2 读取表格文件
读取本地表格文件的主要函数是read.table(),其中的file参数设定了文件路径,注意路径中斜杠的正确用法(如"C:/data/sample.txt"),header参数设定是否带有表头。sep参数设定了列之间的间隔方式。该函数读取数据后将存为data.frame格式,而且所有的字符将被转为因子格式,如果你不想这么做需要记得将参数stringsAsFactors设为FALSE。与之类似的函数是read.csv()专门用来读取csv格式。

如果是想抓去网页上的某个表格,那么可以使用XML包中的readHTMLTable()函数。例如我们想获得google统计的访问最多的1000名网站数据,则可以象下面这样做。关于这个函数可以参考这篇博文
url <- 'http://www.google.com/adplanner/static/top1000/'
data <- readHTMLTable(url)
names(data)
head(data[[2]])

3 读取文本文件
有时候需要读取的数据存放在非结构化的文本文件中,例如电子邮件数据或微博数据。这种情况下只能依靠readLines()函数,将文档转为以行为单位存放的list格式。例如我们希望读取wikipedia的主页html文件的前十行。

data <- readLines('http://en.wikipedia.org/wiki/Main_Page',n=10)

另外,scan()也有丰富的参数用来读取非结构化文档。

4 批量读取本地文件
在批量读取文档时一般先将其存放在某一个目录下。先用dir()函数获取目录中的文件名,然后用paste()将路径合成,最后用循环或向量化方法处理文档。例如:
doc.names <- dir("path")
doc.path <- sapply(doc.names,function(names) paste(path,names,sep='/'))
doc <- sapply(doc.path, function(doc) readLines(doc))

5 写入文件
write.table()write.csv()函数可以很方便的写入表格型数据文档,而cat()函数除了可以在屏幕上输出之外,也能够输出成文件。

另外若要与MySQL数据库交换数据,则可以使用RMySLQ包。


【转自】http://xccds1977.blogspot.com/2012/02/r_27.html




二维码

扫码加我 拉你入群

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

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

关键词:R语言编程 语言编程 编程入门 R语言 strings 语言编程

沙发
lichray 发表于 2012-2-27 21:56:04 |只看作者 |坛友微信交流群
高手啊

使用道具

藤椅
wanlin000 发表于 2014-7-3 18:02:15 |只看作者 |坛友微信交流群
输出的呢????

使用道具

板凳
zgy_Russell 发表于 2014-7-12 08:38:12 |只看作者 |坛友微信交流群
nice

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 09:58