在R语言中可以使用scan()函数从文件中获取数据或从键盘中直接获取用户输入的数据,其语法格式可以参见《R语言中scan()函数参数详解》。这里主要探讨一下从文件中获取数据的方法。
1、从文本文件中读取数据
假设在R的当前工作目录中有一个文件:student.txt,其存储的数据如下所示:
每个数据以空白分隔。
(1)scan("student.txt", what="c") #以字符串的格式读取数据
(2)scan("student.txt", what="c", nlines=3) #读取3行
(3)scan("student.txt", what="c", skip=1) #忽略第1行
以上的执行情况如下图所示:
(4)scan("student.txt", what=list(studentNo="",studentName="", studentSex="", studentAge=0),skip=1) #以列表的形式读取数据
(5)lst <- scan("student.txt", what=list(xh="",xm="",xb="",nl=0),skip=1) #读取数据并保存到变量中
执行情况如下图所示:
2、读取CSV
CSV文件,默认是以逗号进行分隔的数值文件。将Excel文件另存CSV格式的文件后,可以使用R语言的scan()函数读取其数据。
使用scan()函数读取csv格式的文件,与读取文本型数据没有多大区别,不过要指定逗号作为分隔符。
将student.txt文件中的数据键入到Excel文件后,另存为student.csv,并将其放到R的工作目录中。
(1)scan("student.csv") #scan()函数默认以double格式存储数据,而该文件中包含不能转换的数据而报错
(2)scan("student.csv",what="c") #由于未指定分隔符,scan()函数将每一行作为了一个数据域
(3)scan("student.csv",what="c",sep=",") #指定逗号作为分隔符后,可以正确读取数据了
(4)scan("student.csv",what="c",sep=",",skip = 1) #忽略第一行的标题行
以上在R中的执行情况如下图所示:
(5)scan("student.csv",what=list(xh="",xm="",xb="",nl=0),sep=",",skip=1) #以列表的形式读取数据
(6)m<-matrix(scan("student.csv",what="c",sep=",",skip=1),ncol=4,byrow=TRUE) #读取数据并创建矩阵
以上执行情况如下图所示:
本部分(完)
新闻热点
疑难解答