基础入门
c–创建向量
> x<-c(1,2,3)
> x
[1] 1 2 3
seq–生成序列
#生成2-10之间的整数序列
> data<-seq(2,10);data
[1] 2 3 4 5 6 7 8 9 10
#生成2-10之间,步长为2的整数序列
> data<-seq(2,10,by=2);data
[1] 2 4 6 8 10
#生成2-10之间,步长为0.2的序列
> data<-seq(2,10,by=.2);data
[1] 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6
[15] 4.8 5.0 5.2 5.4 5.6 5.8 6.0 6.2 6.4 6.6 6.8 7.0 7.2 7.4
[29] 7.6 7.8 8.0 8.2 8.4 8.6 8.8 9.0 9.2 9.4 9.6 9.8 10.0
#生成1-10之间的整数序列
> data<-1:10;data
[1] 1 2 3 4 5 6 7 8 9 10
#生成从2开始,步长为0.5的前4个序列
> data<-seq(length=4,from=2,by=0.5)
> data
[1] 2.0 2.5 3.0 3.5
#生成-5到5之间按平均间隔生成的所有100个序列
> data<-seq(-5,5,length=100);data
[1] -5.00000000 -4.89898990 -4.79797980 -4.69696970 -4.59595960 -4.49494949
[7] -4.39393939 -4.29292929 -4.19191919 -4.09090909 -3.98989899 -3.88888889
[13] -3.78787879 -3.68686869 -3.58585859 -3.48484848 -3.38383838 -3.28282828
[19] -3.18181818 -3.08080808 -2.97979798 -2.87878788 -2.77777778 -2.67676768
[25] -2.57575758 -2.47474747 -2.37373737 -2.27272727 -2.17171717 -2.07070707
[31] -1.96969697 -1.86868687 -1.76767677 -1.66666667 -1.56565657 -1.46464646
[37] -1.36363636 -1.26262626 -1.16161616 -1.06060606 -0.95959596 -0.85858586
[43] -0.75757576 -0.65656566 -0.55555556 -0.45454545 -0.35353535 -0.25252525
[49] -0.15151515 -0.05050505 0.05050505 0.15151515 0.25252525 0.35353535
[55] 0.45454545 0.55555556 0.65656566 0.75757576 0.85858586 0.95959596
[61] 1.06060606 1.16161616 1.26262626 1.36363636 1.46464646 1.56565657
[67] 1.66666667 1.76767677 1.86868687 1.96969697 2.07070707 2.17171717
[73] 2.27272727 2.37373737 2.47474747 2.57575758 2.67676768 2.77777778
[79] 2.87878788 2.97979798 3.08080808 3.18181818 3.28282828 3.38383838
[85] 3.48484848 3.58585859 3.68686869 3.78787879 3.88888889 3.98989899
[91] 4.09090909 4.19191919 4.29292929 4.39393939 4.49494949 4.59595960
[97] 4.69696970 4.79797980 4.89898990 5.00000000
rep—根据已有序列生成新的序列
#直接赋值
> x<-c(1,2,3,4,5)
> data<-rep(x);data
[1] 1 2 3 4 5
#复制n次
> data<-rep(x,3);data
[1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
#根据对应元素复制
> data<-rep(x,c(1,2,3,4,5));data
[1] 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
paste—数据拼接
#拼接数据
> data<-paste(1,2,3,"hello"," ",c(1,2,3));data
[1] "1 2 3 hello 1" "1 2 3 hello 2" "1 2 3 hello 3"
#指定符号拼接数据
> data<-paste("a","b",sep=",")
> data
[1] "a,b"
#指定符号拼接数据(含数据序列)
> data<-paste("x",1:10,sep="|");data
[1] "x|1" "x|2" "x|3" "x|4" "x|5" "x|6" "x|7" "x|8" "x|9" "x|10"
[ ] —数据筛选
> x<-seq(-10,10,length=40);
#获取大于3的数据
> data<-x[x>3];data
[1] 3.333333 3.846154 4.358974 4.871795 5.384615 5.897436 6.410256
[8] 6.923077 7.435897 7.948718 8.461538 8.974359 9.487179 10.000000
#获取排序第1-5的数据
> data<-x[1:5];data
[1] -10.000000 -9.487179 -8.974359 -8.461538 -7.948718
#获取除了序号1-5的数据【排除】
> data<-x[-(1:5)];data
[1] -7.4358974 -6.9230769 -6.4102564 -5.8974359 -5.3846154 -4.8717949
[7] -4.3589744 -3.8461538 -3.3333333 -2.8205128 -2.3076923 -1.7948718
[13] -1.2820513 -0.7692308 -0.2564103 0.2564103 0.7692308 1.2820513
[19] 1.7948718 2.3076923 2.8205128 3.3333333 3.8461538 4.3589744
[25] 4.8717949 5.3846154 5.8974359 6.4102564 6.9230769 7.4358974
[31] 7.9487179 8.4615385 8.9743590 9.4871795 10.0000000
summary—获取对象基本信息
可以用于方程系数的基本信息和检验信息
> x
[1] -10.0000000 -9.4871795 -8.9743590 -8.4615385 -7.9487179 -7.4358974
[7] -6.9230769 -6.4102564 -5.8974359 -5.3846154 -4.8717949 -4.3589744
[13] -3.8461538 -3.3333333 -2.8205128 -2.3076923 -1.7948718 -1.2820513
[19] -0.7692308 -0.2564103 0.2564103 0.7692308 1.2820513 1.7948718
[25] 2.3076923 2.8205128 3.3333333 3.8461538 4.3589744 4.8717949
[31] 5.3846154 5.8974359 6.4102564 6.9230769 7.4358974 7.9487179
[37] 8.4615385 8.9743590 9.4871795 10.0000000
#对象基本信息,分别是-最小值 | 1/4数值 | 中位数 | 3/4数值 | 最大值
> summary(x)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-10 -5 0 0 5 10
factor–定制因子
因子就是将对象的值分成不同的组(levels)。用函数factor()创建一个因子,levels按序排列(字母序或数值序)。
> data<-c("粉红","墨绿","湖绿","冰蓝","粉红")
> data
[1] "粉红" "墨绿" "湖绿" "冰蓝" "粉红"
#levels可以实现去重
> factor(data)
[1] 粉红 墨绿 湖绿 冰蓝 粉红
Levels: 冰蓝 粉红 湖绿 墨绿
matrix–生成矩阵
seq(-1,13,length=24);x
[1] -1.0000000 -0.3913043 0.2173913 0.8260870 1.4347826 2.0434783 2.6521739
[8] 3.2608696 3.8695652 4.4782609 5.0869565 5.6956522 6.3043478 6.9130435
[15] 7.5217391 8.1304348 8.7391304 9.3478261 9.9565217 10.5652174 11.1739130
[22] 11.7826087 12.3913043 13.0000000
#取前3*2=6个数据,生成3行2列的矩阵
> data<-matrix(x,3,2)
> data
[,1] [,2]
[1,] -1.0000000 0.826087
[2,] -0.3913043 1.434783
[3,] 0.2173913 2.043478
t–矩阵转换秩
#从原来的3行2列转成2行3列
> a<-t(data);a
[,1] [,2] [,3]
[1,] -1.000000 -0.3913043 0.2173913
[2,] 0.826087 1.4347826 2.0434783
cbind rbind–将数据绑定成矩阵
> x1<-c(1,2,3,4)
> x2<-c(2,5,10,17)
#按行绑定,即第一行x11,x21,第二行x12,x22...
> data<-cbind(x1,x2);data
x1 x2
[1,] 1 2
[2,] 2 5
[3,] 3 10
[4,] 4 17
#按列绑定,即第一列x11,x21,第二列x12,x22
> data<-rbind(x1,x2);data
[,1] [,2] [,3] [,4]
x1 1 2 3 4
x2 2 5 10 17
data.frame-- 创建表格
创建数据帧(也称为数据框)
数据帧会被当作各列具有不同模式和属性的矩阵。
数据帧按照矩阵的方式显示,选取的行或列也按照矩阵的方式来索引。
#创建1行3列的数据,并为表格的列名赋值
> x1<-data.frame(name="tom",age="23",gender="male");x1
name age gender
1 tom 23 male
#创建3行3列的数据,并为列名赋值
> x1<-data.frame(name=c("tom","rose","panda"),age=c("23","22","18"),gender=c("male","female","male"));x1
name age gender
1 tom 23 male
2 rose 22 female
3 panda 18 male
#根据列名获取数据
> x1$name
[1] tom rose panda
Levels: panda rose tom
> x1$age
[1] 23 22 18
Levels: 18 22 23
> x1$gender
[1] male female male
Levels: female male
#覆盖数据,数据长度必须与指定列的数据长度一致,过多过少都不行
> x1$name=c("白","熊","黎")
> x1
name age gender
1 白 23 male
2 熊 22 female
3 黎 18 male
attach–数据帧挂接,扁平化数据帧
当觉得使用’ home’)麻烦时,可以进行数据帧挂接,这样可以直接引用数据帧内的元素,而无需’$’,前提是数据帧外没有同名的变量(如name)。
挂接后若要对数据帧元素进行赋值操作,仍需用’$’,否则视为赋值给数据帧外的元素。
#挂帧前需确认所有列名都没有被用过,否则报错,该列挂载失败,其他列可以挂载
> attach(x1)
> name
[1] "白" "熊" "黎"
> age
[1] 23 22 18
Levels: 18 22 23
> gender
[1] male female male
Levels: female male
#取消挂载(挂了多少次,无论是否全部失败,都要取消一次才能清除)
> detach(x1)
attach()也可以挂接list数据
注意:当对属性值赋值之后,需要调用detach( )卸载挂接,再attach( )重新挂接才能显示最新值。
read.table–读取文件信息
#读取数据,读取前需要改变工作目录(文件->改变工作目录)
> data<-read.table("info.txt",header=TRUE);data
name age gender
1 tom 23 男
2 rose 26 女
3 jim 30 男
4 jary 28 男
#可以把对象当作dataframe使用
> data$name
[1] tom rose jim jary
Levels: jary jim rose tom
画图基础
画图的主要函数是plot(),基本参数如下
1)type为一个字符的字符串,用于给定绘图的类型,可选的值如下:
“p”:绘点(默认值);
“l”:绘制线;
“b”:同时绘制点和线;
“c”:仅绘制参数"b"所示的线;
“o”:同时绘制点和线,且线穿过点;
“h”:绘制出点到横坐标轴的垂直线;
“s”:绘制出阶梯图(先横后纵);
“S”:绘制出阶梯图(先纵后竖);
“n”:作空图。
(2)main参数 字符串,给出图形的标题;
(3)sub参数 字符串,给出图形的子标题;
(4)xlab 和 ylab参数 字符串,用于给出x轴和y轴的标签。
(5)xlim 和 ylim参数 都是二维向量,分别表示x轴和y轴的取值范围。
plot()
> a<-c(1,4,2,9)
> b<-c(2,5,7,1)
> plot(a,b)
> plot(a,b,xlab="单价",ylab="利润",type="h",main="单价-利润散点图")
boxplot() 箱型图
> data<-c(25, 45, 50, 54, 55, 61, 64, 68, 72, 75, 75,78, 79, 81, 83, 84, 84, 84, 85, 86, 86, 86,87, 89, 89, 89, 90, 91, 91, 92, 100)
> boxplot(data)
“盒式图"或叫"盒须图”"箱形图"boxplot(也称箱须图(Box-whiskerPlot)须图又称为箱形图,其绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同的母体数据时更可表现其差异。
每条线表示的含义,其中应用到了分位值(数)的概念。
主要包含六个数据节点,将一组数据从大到小排列,分别计算出他的上边缘,上四分位数Q3,中位数,下四分位数Q1,下边缘,还有一个异常值。