- seq等间隔函数
seq(from,to,by,length.out,along.with)
from,to 为数值,表示开始和结束
by为数值,表示间隔
length.out为数值,表示数列长度
along.with为向量,表示数列长度与该向量长度相等
- rbind矩阵的合并
rbind() 对矩阵按行合并,要求子矩阵有相同列数
如: x1<-c(1,2,3,4,5,6)
x2<-c("a","b","c","d","e","f")
dim(x1)<-c(2,3)
dim(x2)<-c(2,3)
rbind(x1,x2)
- cbind矩阵的合并
cbind() 对矩阵按列合并,要求子矩阵有相同行数
- Factor函数
作用:将一个向量转换成因子
factor(x,levels,labels=levels,exclude=NA,ordered=is.ordered(x))
x:被转换的向量
levels:因子水平,可以为空
labels:各水平的名字,可以为空
exclude:从x中剔除的水平值
ordered:因子水平是否有序,TRUE 或者FALSE
例:
data<-c(1,2,3,3,1,2,2,3,1,3,2,1) #数值向量
fdata<-factor(data)
grade<-c("优","良","差","差","优","良","良","差","优","差","良") #字符向量
fgrade<-factor(grade)
- Rep重复函数
- rep(x,times,length.out,each,正整数向量)
x为数量、向量、数据对象
times ,x重复的次数
length.out,重复后该向量的长度
each,x中每个分量重复的次数
正整数向量,x中分量对象重复的次数
- matrix矩阵的生成
matrix(data, nrow, ncol, byrow, dimnames)
data:数据向量
nrow:矩阵的行数
ncol: 矩阵的列数
byrow:逻辑值,T表示行序为主序,F表示列序为主
dimnames:行、列名称,列表格式
如:
mdat<-matrix(c(1,2,3,4,5,6,7,8,9,0),nrow=2,byrow=T,dimnames=list(c("row1","row2"),c(“C1”,”C2”,”C3”,”C4”,”C5”)))
- apply对矩阵或数组按照维度做运算
apply(x,margin,fun)
x:数组或矩阵
margin:做运算的维度,1表示行,2表示列
fun:运算函数
如:A<-matrix(1:6,nrow=2);A
sum(A);
sum(A[,2])
apply(A,1,sum)
- tapply 不同水平指定函数的计算
tapply: 接入参数INDEX,对数据分组进行运算,就和SQL中的by group一样。
- tapply(x,index,fun,simplify=TRUE)
x:计算对象,向量
index:与x长度相同,表示x的因子水平
fun:需要计算的函数
simplify:返回值类型,T表示数组,F为列表
- paste将多个字符型向量连接成一个向量
paste(……,sep=“ ”,collapse=NULL),……为一个或多个对象,sep为分隔符
如:paste("Happy","birthday")
paste("Happy","birthday",sep=",")
paste("信管2016",1:4,sep="-")
paste(c("x","y"),rep(c(1,2),each=2))
- which
(1)逻辑向量中 which()判断分量中谁为T
(2) which(x, arr.ind = TURE)
which函数有一个已知value返回坐标的功能
- x 是一个向量或者数组,可以是NA,但会省略掉,相当于FALSE。
- arr.ind = TRUE 当x是数组时,返回数组索引。
- data.frame数据框函数
df<-data.frame(
Name=c("Alice","Becka","James","Jeffrey"),
Sex=c("F","F","M","M"),
Age=c(13,13,12,13),
Height=c(56.5,65.3,57.3,62.5),
Weight=c(84,98,83,84))
- sample随机抽样
1.sample()函数
- sample(x,size,replace,prob)
x:目标数据 size:抽样数量的参数
replace:是否放回抽样,有放回为T,无放回F prob:抽样的概率向量
- sample直接作用数据框,得到对列的抽样结果。
2.实现按行抽样
sub1<-sample(nrow(data_stu),5,replace = F)
getdata(data_stu,sub1)
- Table函数
统计因子向量中各水平出现的频数 table(fdata)
- Function
funname<-function(arg_1,arg_1,……)expression
funname:函数名
arg_1,arg_2:函数参数
expression:表达式
- read.csv函数
需要将Excel文件转换成CSV(逗号分隔)文件
read.csv(file,header)
- read.table函数
read.table(file,header=True,sep=“”,row.names,col.names,skip,nrows)
file:读入数据文件名,数据以表格形式(纯文本文件)保存在文件中。
header:数据文件中有表头,则为T。
sep:数据分隔字符
row.names:行名
col.names:列名(变量名)
skip:读数据时跳过的行数,非负整数。
nrows:读取的行数
例:体会以下代码的含义
data_stu<-read.table("stu.txt",header=T)
data_stu
data_stu<-read.table("stu.txt",header=T,row.names = paste("201601",1:5,sep=""))
data_stu<-read.table("stu.txt",header=F,skip=2)
- Write函数
write(x,file,ncolumns,append)
x:需要写入文件的数据,通常为矩阵或向量
file:要保存的文件名
ncolumns:列数,字符默认1,数值默认5
append:逻辑变量,为T表示在原有文件添加数据,F表示新文件
- write.csv
将数据写为表格形式的文本文件或者CSV格式文件
write.table(x,file,append,sep)
sep:为分离数据的字符
- install.packages
install.packages() 打开安装包目录
install.packages(“包名”) 安装一个包
- Library
library(包名) 加载一个包
search() 查看已经加载的所有包
- data
data()获取数据集
- Names
names()命名函数
例子:
fruit<-c(5,10,8,11) ;
names(fruit)<-c("orange","banana","apple","peach")
- Str
Str()显示数据类型
- strata分层抽样
strata()函数
strata(data,stratanames,size,method,pik,description)
r(有放回)\pisson(泊松)\systematic(系统)data:待抽样数据集
stratanames:分层所依据的变量名
size:各层要抽出的观测样本数,顺序与变量水平出现次序相同
method:srswor(无放回)\srsw
pik:各样本抽样概率
description:是否输出含有各层基本信息的结果
- getdata
- plot绘图函数
可以绘制散点图、曲线图
- plot(x,y,type,……)
x,y:构成横坐标和纵坐标的对象
type:图形类型,具体取值如表所示
type | 绘点(默认值) |
l | 画线(line) |
b | 同时绘点和线,线不穿过点 |
c | 仅画参数“b”所示的线 |
o | 同时绘点和线,线穿过点 |
h | 绘出点到横轴的竖线 |
s | 绘出阶梯图(先横再纵) |
S | 绘出阶梯图(先纵再横) |
n | 空图,不绘任何图形 |
- plot(x,y,type,lty,pch,cex,lwd……)
lty:设置线条的格式,详细如图所示
pch:设置点的格式,详细如图所示
cex:指定符号大小,默认大小为1,设置值为默认值的倍数
lwd:设置线条宽度
- 文本属性参数
xlim,ylim:二维向量,x轴、y轴的范围
main:字符串,图形的标题
sub:字符串,图形的副标题
xlab:字符串,x轴的标签
ylab:字符串,y 轴的标签
- abline添加直线
abline(a,b,h,v,reg,coef,untf)
a,b:数值,a表示截距,b表示斜率
h:数值或向量,表示水平直线
v:数值或向量,表示竖直直线
coef:二维向量,分别表示截距和斜率
- text添加文字符号
text(x,y,labels,pos,cex,col,font,……)
x,y:数值向量,表示添加文字的坐标;
labels:数值或字符型向量,需要添加的文字或符号
adj:[0,1]区间的值,调整文字的位置
pos:数字,1,2,3,4分别表示原始位置的下、左、上、右位置,不能和adj参数同时使用;
font:不同字体,(1,2,3,4,5)
cex : 设置文字的大小
参数 | 描述 |
font | 整数,字体样式,1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体 |
font.axis | 坐标轴刻度文字的字体样式 |
font.lab | 坐标轴标签的字体样式 |
font.main | 标题的字体样式 |
font.sub | 副标题的字体样式 |
ps | 字体磅值 |
family | 绘制文本时使用的字体族,serif(衬线)sans(无衬线)mono(等宽) |
- expression数学符号与表达式
expression()
- Legend添加图例
legend(x,y,legend,border,lty,lwd,pch,……)
x,y:数值,表示图例的位置坐标;
legend:字符串或表达式,表示图例的内容
lty,lwd:数字,图例中线的类型与宽度
pch:数字,图例中符号的类
- Sweep 循环函数
sweep(x, MARGIN, STATS, FUN = "-", check.margin = TRUE, ...)
对数组的某一个或某几个维度减去(或FUN指定的操作)STATS
· x:即要处理的原数据集
· MARGIN:对行或列,或者数列的其他维度进行操作
· STATS:需要对原数据集操作用到的统计量
· FUN:操作需要用到的四则运算,默认为减法"-",当然可以修改成"+","*","/"即加、乘、除
· check.margin:是否需要检查维度是否适宜的问题,默认为TRUE。如果为TRUE(默认值),则警告STATS的长度或尺寸是否与x的指定尺寸不匹配
例子:x1 <- sweep(df1[,3:5],2,MIN)
三到五列分别减最小值min
- Round取整
round(): 四舍五入取整
- Cut切割
cut()函数 输入为数值向量,输出为因子
cut(x,breaks,labels)
X:数值向量
breaks:指定分割点数量的整数,或指定位置向量
labels:输出因子的水平的标签
例:将30名学生成绩分段,并统计每个分段的人数
data<-round(runif(30,0,100))
data_cut<-cut(data,breaks=c(0,60,70,80,90,100))
table(data_cut)
- subset取子集
subset(x,subset,select)
x:全部数据
subset:需要取出的子集
select:需要取出的列
- Mean均值
均值 mean(x)
- Boxplot箱线图
boxplot(x,formula,data,range,outline,col,horizontal)
x:向量、列表,数据框
formula:公式,形如y~grp,其中y为向量,grp为分组,常为因子
data:数据框,提供数据
range:数值,表示“触须”范围,默认值为1.5(最小值小于触须则标记为outlier)
outline:逻辑值,F表示不标明异常值点
horizontal:逻辑值,F表示绘制水平箱线图
- Par
- 图形参数设置方法
(1)在绘图函数中设置参数
如:plot(dose,a,type=“b”,col=“red)
(2)通过par()函数设置:参数值将一直有效
- 在par()函数中使用mfrow=c(nrows,ncols)创建图形矩阵
- Axis添加边
axis(side,at,labels,tick,line,pos,……)
side:数字,描述添加哪些位置的边。1,2,3,4分别表示下,左,上,右;
at:向量,添加标记的位置;
labels:逻辑,T表示在标记位置添加at的值,F表示不添加
- hist直方图
hist(x,breaks,freq,border,labels)
x:向量,直方图的数据
breaks:数值,向量或字符串,描述直方图的断点
freq:逻辑变量,T为频数,F为密度,默认为T
border:数字或字符串,外框的颜色
labels:逻辑变量,T表示标出频数或密度
- layout图形组合
- layout(mat)
mat为矩阵,指定要组合的多个图形的位置。
例子:attach(mtcars)
mat<-matrix(c(1,1,2,3),2,2,byrow=T) #创建矩阵
layout(mat) #设置组合图形
hist(wt);hist(mpg);hist(disp);detach(mtcars)
- layout(mat,widths,heights)
widths:各列宽度值组成的一个向量
heights:各行高度值组成的一个向量
例子:
mat<-matrix(c(1,1,2,3),2,2,byrow=T) #创建矩阵
layout(mat,widths = c(3,1),heights=c(1,2)) #第1列宽度3,高度1,第2列的宽度1,高度2
hist(wt);hist(mpg);hist(disp)