有众多的格式和文本文件标准可用于存储数据。用于存储数据的通用格式为分隔符值(即CSV或制表符分割文件)、可扩展标记语言(XML)、JavaScript对象表示法(JSON)
将数据存储在文本文件中的主要优点是:他们可被几乎所有的其他数据分析软件或人读取
R语言提供丰富的函数来读取不同格式的数据,包括:
文本文件(TXT文件)
逗号分隔文件(CSV文件)
TXT文件——read.table()
矩形(类似电子表格的)数据通常存储在带有分隔符的文件中,特别是逗号分隔值(CSV)和制表符分隔值文件。read.table将读取这些分隔符文件,并将结果存储在一个数据框中。其格式如下:
read.table(file,header = FALSE,sep = “”,quote = “”'", dec = “.”,numerals = c(“allow.loss”,“warn.loss”,“no.loss”), row.name,col.name,as.is = !stringsAsFactors, na.strings = “NA”,colClasses = NA,nrow = -1, skip = 0,check.names = TRUE,fill = !blank.lines.skip, strip.white = FALSE,bla nk.lines.skip = TRUE, comment.char = “#”, allowEscapes = FALSE,flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = “”,encoding = “unknown”,text,skipNul = FALSE)
read.table 函数的常用参数描述
参数 | 描述 |
---|---|
file | 文件名(包含在“”内,或使用一个字符型变量),可能需要全路径(即使是在Windows下,符号 \ 也不允许包含在内,必须用 / 或者 \ \ 替换)或者一个URL(Uniform Resource Location,统一资源定位符)链接(用URL对文件远程访问) |
header | 一个逻辑值,用来反映这个文件的第1行是否包含变量名,为TRUE时表示文件的第1行为变量名 |
sep | 文件中的字段分隔符,例如,对用制表符分隔的文件使用sep=“\t” |
quote | 指定用于包围字符型数据的字符 |
dec | 用来标识小数点的字符 |
fill | 如果为TRUE且所有行中的变量数目并不相同,则用空白填补 |
row.names | 保存着行名的向量,或文件中一个变量的序号或名字,默认时行号取为1、2、3··· |
col.names | 指定列名的字符型向量,默认值为V1、V2、V3··· |
encoding | 若文件中包含非ASCII字符字段,则使用此参数进行设置,可确保以正确的编码方式读取,避免出现乱码 |
更多高级选项包括:覆盖默认的行名、列名和类,指定输入文件的字符编码,以及输入的字符串格式的列如何声明
CSV文件——read.csv()
read.csv函数可读入一个逗号分隔文件并将其保存为一个数据框,其格式如下:
read.csv(file,header = TRUE,sep = “,”,quote = “” “,dec=” . ",fill = TRUE,comment.char = " ",ecoding = "unknown ",…)
参数 | 描述 |
---|---|
file | 文件名(包含在“”内,或使用一个字符型变量),可能需要全路径(即使是在Windows下,符号 \ 也不允许包含在内,必须用 / 或者 \ \ 替换)或者一个URL链接(用URL对文件远程访问) |
header | 一个逻辑值,用来反映这个文件的第1行是否包含变量名,为TRUE时表示文件的第1行为变量名 |
sep | 文件中的字段分隔符,CSV文件默认为sep="," |
quote | 指定用于包围字符型数据的字符 |
dec | 用来标识小数点的字符 |
fill | 如果为TRUE且所有行中的变量数目并不相同,则用空白填补 |
comment.char | 包含单个字符或空字符串的长度为1的字符向量,以这个字符开头的行将被忽略(要禁用这个参数,可使用comment.char="" |
encoding | 若文件中包含非ASCII字符字段,则使用此参数进行设置,可确保以正确的编码方式读取,避免出现乱码 |
与此相反的任务是写入文件,write.table和write.csv分别对应着read.table和read.csv的读操作
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好代码网。如有错误或未考虑完全的地方,望不吝赐教。