首页 > > > 【R语言基础】03. 数据文件的读写
适合小数据集,使用函数edit(),操作步骤:
1. 创建一个空的数据框或矩阵,设置对应的变量名和变量类型;
2. 针对该数据对象,调用文本编辑器,输入数据,并保存。
mydata<-data.frame(age=numeric(0),
gender=factor(character(0),
levels = c("m","f")),
weight=numeric(0))
mydata<-edit(mydata)
将调出“数据编辑器”窗口:

注意:函数edit()实际上是在对象的副本上进行操作,若不将其赋值到一个目标变量mydata,则不会保留改动;或者使用函数fix()会保留改动。
二、读写txt文件
1. 读入txt文件
使用函数read.table()从带分隔符的txt文件读入数据,基本格式为:
read.table(file, header=FALSE, sep="", fill=, row.names, col.names, encoding=, skip=, colClasses=, ...)其中,file为包含在" "内的文件路径+文件名,注意 \ 要换成 / 或 \\;
header指定是否将第1行作为变量名,默认为FALSE;
sep指定分隔符;
fill设置是否填充,若为TRUE,则各行变量数目不同时,将用空白填充;
row.names, colnames设置行名、列名的向量;
encoding设置读取时的编码方式,避免出现乱码;
skip指定读取数据前跳过的行数;
colClasses指定各列的数据类型的一个字符型向量。
2. 导出为txt文件
使用write.table()函数,参数基本同read.table().
例1 读取下列txt数据文件:ex05_datas.txt

setwd("E:/codes")
datas<-read.table("ex05_datas.txt",header=TRUE, sep=" ")
head(datas,3)
age weight Oxygen runtime rstpulse runpulse Maxpulse
1 44 89.47 44.609 11.37 62 178 182
2 40 75.07 45.313 10.07 62 185 185
3 44 85.84 54.297 8.65 45 156 168
write.table(datas,file="ex3_write_txt.txt")
三、读取CSV文件
CSV文件就是用逗号分隔的txt文件。
用函数read.csv()读取并保存为数据框,基本格式为:
read.csv(file, header=FALSE, sep=",", fill=, row.names, col.names, encoding=, ..)其中,参数基本同read.table()。
用函数write.csv()函数将数据导出为CSV文件。
四、读写Excel文件
最建议的方式是将Excel文件转存为CSV文件,再用函数read.csv()读取。
使用xlsx包,需要配置Java环境。使用openxlsx包:
1. 读入xlsx
函数read.xlsx(),基本格式为:
read.xlsx(xlsxFile, sheet=1, startRow=..., colNames=TRUE, rowNames=FALSE, rows=NULL, cols=NULL, namedRegion=NULL)其中,sheet指定读取的工作表;
colNames=TRUE指定第1行作为变量名;
rowNames=FALSE指定第1列不作为行名;
rows,cols,namedRegion指定读取行、列、区域。
例2 读入Excel文件:iris.xlsx

library(openxlsx)
datas<-read.xlsx("iris.xlsx", colNames=TRUE)
head(datas,3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
2. 写入xlsx
例如,将R自带的数据集iris写入iris.xlsx,并打开
library(openxlsx)
write.xlsx(iris,file="iris.xlsx")
openXL("iris.xlsx")
注:从其它统计分析软件导入数据,建议先保存为Excel文件再导入R语言。
主要参考文献:
[1] 张良均,谢佳标,杨坦,肖刚. R语言与数据挖掘. 机械工业出版社,2016.
作者:张敬信
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3132168/ ,如需转载,请注明出处,否则将追究法律责任。