data() #查看数据集列表
data(mtcars) #载入数据集
如用library()载入程序包后,可用data(package=”“)查看包内附带的数据集。
library(vcd)
data(package="vcd") #查看vcd包中的数据集
data(Arthritis,package = "vcd") #载入数据集Arthritis
a、调用文本编辑器edit()。
首先必须创建一个空的数据框或者矩阵,且数据框或者矩阵中的变量名与变量类型必须与最终数据集一致。下列代码创建了一个名为mydata的数据框,数据框里保存了姓名,英语成绩,数学成绩三个变量,且通过调用文本编辑器edit()可修改或增加变量。
mydata<-data.frame(name=character(0),English=numeric(0),Math=numeric(0)) #创建一个空的数据框
mydata<-edit(mydata)
mydata
程序运行结果如下:
可在此数据编辑器中直接输入数据,或者通过单击来修改变量名或者变量类型,也可以增加变量。
b、直接在程序中嵌入数据,代码如下:
> mydatatext<-"
+ name English Math
+ 张三 92 93
+ 李四 80 92
+ "
> mydata<-read.table(header=T,text=mydatatext)
> mydata
name English Math
1 张三 92 93
2 李四 80 92
使用read.table()导入一个带分隔符的文本文件,其输出类型为数据框。语法如下:
read.table(file , header=F , sep=”” ,quote , row.names , col.names , na.strings=”NA” , colClasses , skip , stringsAsFactors=T, blank.lines.skip=T, strip.white=F, text,…)
参数 | 参数的解释 |
---|---|
file | 需要读入的文件名或者路径。当需要读入的文件在R的工作目录下时,file=files.name,否则file=”文件的存储路径”,如以下代码中所示。也可以更改需读入文件的储存目录为R的工作目录,然后file=file.names即可读入文件,但此法比较繁琐,一般不推荐。 |
header | 是否文件的读入第一行,默认值为FALSE。 |
sep | 文件中分开数据的分隔符。默认为sep=”“,表示分隔符为一个或多个空格、换行或回车。若分隔符为逗号,则sep=”,”;若为制表符,则sep=”\t”。 |
quote | 设置如何引用字符型变量。若没有分隔符,则quote=”\”。 |
row.names | 用于指定行名的可选参数。 |
col.names | 若header=F,用于指定列名的可选参数.如col.names=c(“name”,”English”)。 |
na.strings | 用于表示缺失值的字符向量。默认为NA。即将NA判断为缺失值,也可自行定义表示缺失值的字符。 |
colClasses | 每一列的变量类型。如colClasses=c(“numeric”,”character”)表示将第一列定义为数值型,第二列定义为字符型。 |
skip | 读取数据前跳过的行数。 |
stringsAsFactors | 字符向量是否需转化为因子,默认值为T,可能会被colClasses所覆盖。处理大型文本文件时,设置为F可提高处理速度。 |
blank.lines.skip | 是否跳过空白行,默认值为T。 |
strip.white | 是否消除空白字符,默认值为F。 |
text | 一个指定文字进行处理的字符串。若text被设置了,则无需设置file,如以上直接在程序中嵌入数据集的代码所示。 |
下面使用read.table()来读取一个分隔符为逗号,名为“分数”的csv文件,代码如下:
>mydata<-read.table(header=T,file="C:\\Users\\mx\\Desktop\\分数.csv",sep=",") #路径中的单右斜杠“\”需换成双右斜杠“\\”或者单左斜杠“/”。文件名后一定要加上扩展名
> mydata
name English Math
1 张三 92 93
2 李四 80 92
与read.table()用法类似的函数还有read.csv(),read.delim()。
*
a、将其保存为csv格式,用前文所描述的方法读取
b、直接用read.xlsx()读取。读取前确保已安装“xlsxjars”,”rJava”,”xlsx”包,且第一次使用前需确保配置了Java环境。下载安装的Java的位数必须与电脑位数、R的位数一致。
语法: read.xlsx(file, n),其中n表示要读取的工作表序号。
如用read.xlsx()读取以上名为“分数”的.xlsx形式,代码如下:
> library(xlsxjars)
> library(rJava)
> library(xlsx)
> mydata<-read.xlsx("C:\\Users\\mx\\Desktop\\分数.xlsx",1,encoding="UTF-8") #encoding="UFT-8"调整中文字集符,防止表格中的中文读取时乱码
> mydata
name English Math
1 张三 92 93
2 李四 80 92