您的位置:首页 > 其它

用R语言做数据分析(8)——数据的输入与输出之READ函数 3ff8

2015-11-30 15:06 453 查看
read.table() 函数
1、用于读入表格(表)类型的数据,同时生成数据框对象。
2、读入的数据要求有规则的分隔符,默认有:空格、TAB、换行符、回车符;其它的分隔符,通过sep=来进行指定。

read.table(file, header = FALSE, sep = "", quote = "\"'",
dec = ".", row.names, col.names,
as.is = !stringsAsFactors,
na.strings = "NA", colClasses = NA, nrows = -1,
skip = 0, check.names = TRUE, fill = !blank.lines.skip,
strip.white = FALSE, blank.lines.skip = TRUE,
comment.char = "#",
allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),
fileEncoding = "", encoding = "unknown")

file:指定读入的文件,或者文件所在地址;

header:是否读入列名,默认是不读入;

sep:来进行指定分隔符:读入的数据要求有规则的分隔符,可以是:空格、TAB、换行符、回车符;

as.is:读入的字符是否转换成因子,默认所有读入的字符都转换成因子;

colClasses:指定列的数据类型格式

header=TRUE 第一行是否是列的名称,默认是TRUE

stringsAsFactors= 是否字符转化成因子,默认是true

row.names=c()指定各行的名称

col.names=C()指定列的名称,如果读入是文件没有头,可以指定

skip=N 从文件第几行开始读入数据

nrows=N 读入的最大行数

na.strings=c()指定什么样的字符表示值缺少

comment.char=‘’ 指定评论的开始字符,默认是#

dec= 指定小数点数

encoding=指定非non-ASCII的编码规则

例如:
demo_3<-read.table('e:/demo_3.txt',header=T)



read.fwf()函数
1、适用用于读入数据相应没有相应的分隔符,但是读入的数据字段长度是固定长度。
2、数据导入R后,生成列表对象。
读入固定分隔长度的数据;

read.fwf(file, widths, header = FALSE, sep = "\t",
skip = 0, row.names, col.names, n = -1,
buffersize = 2000)

file:指定读入的文件,或者文件所在地址;

widths:指定分隔的长度,可以等于向量指定不同的分隔;

buffersize:一次最大的读入行数;

n:读入数据的行数,默认为无数;

例如:在这个数据中,前面的3个字符与接下来的3个数字表示名称、得分,因为二个字段之间没有分隔符号,但其长度是固定的,所以适合用本函数。
ABC123%$12
TEX124@#12
y o14 @@#

read.fwf('e:/demo_1.txt',widths=c(3,3),col.names=c('name','score'));



w <- readline()函数
1、用于程序的交互,根据输入的条件来判断下一步执行的方向;
2、通过键盘读入一行数据;
例如:根据输入的来判断后续程序的执行流程

Demo_2<-function()
{
input<-readline("DO you think R is hard to learn,Please give your choice:Y or N ")
if(input=="Y")
cat("Come on; Spent more time.\n")
else
cat("Good!")
}

Demo_2()



Readlines() 函数
1、控制读入的数据行数,非批处理,有点类似于数据库中的指标操作,可对文件中的数据逐行操作。2、这个对于读入日志类的数据很有用。例如:通过对读入数据的每行来判断是否有需要的数据,有再对数据进行处理;tips:该数据配合R中的正则表达式相关函数,对于处理不规则的数据很强大。
例如:
1、 与文件demo_1建立连接
con<- file("demo_3","r")
2、指定每次执行只读入一行;
RC<-readLines(con,n=1)
3、关闭联接
close(con)



说明:
1、如果读到文件的最后,则length(RC)=0;EOF文件最后返回的空值。
2、N控制每次读入几行;
3、当读到最后要重新开始的时间:seek(con=c,where=0),返回当前指标所有的位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: