R的基本操作

基础入门

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–数据帧挂接,扁平化数据帧

当觉得使用’ ( t &#x27;引用数据帧元素(如&#x27;t 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,下边缘,还有一个异常值。

猜你喜欢

转载自blog.csdn.net/weixin_42712876/article/details/85542003