代码改变世界

R语言学习笔记:基础知识

2016-05-02 16:00  猎手家园  阅读(2186)  评论(0编辑  收藏  举报

1、数据分析金字塔

2、【文件】-【改变工作目录】

3、【程序包】-【设定CRAN镜像】

    【程序包】-【安装程序包】

4、向量 c()

   例:x=c(2,5,8,3,5,9)

   例:x=c(1:100) 表示把1 - 100的所有数字都给x这个变量

5、查看x的类型:>mode(x)

6、查看x的长度:>length(x)

7、将两个向量组成一个矩阵:

   >rbind(x1, x2)  注:r是row的意思,即行,按行组成矩阵。

   >cbind(x1, x2)  注c是column的意思,即列,按列组成矩阵。

8、求平均值:>mean(x)  注:R语言大小写敏感

   对列求平均值:colMeans(x)

   apply(x, 2, mean)  --对x在列的方向求平均值,如果2改成1则对行求平均值。很强大。

   求和:>sum(x)

   求最小值:>max(x)

   求最大值:>min(x)

   求方差:>var(x) 作用:反应数据离散的情况,方差越大离散情况越大。

求标准差:>sd(x)  作用:和方差反应的差不多

求连乘:>prod(x)

9、帮助:>help(mode) 或 ?mode

10、等号:<- 的功能等同于 =,都是赋值的意思。

11、向量的产生

1)形成等差向量:>1:10

2)形成的向量每个都减1:>1:10-1

3)形成的向量每个都乘以2:>1:10*2

4)形成的向量先乘以2再加1:>1:10-2+1

5)显示向量x的第n个元素:>x[n]

6)向量x除了第n个元素不显示,其它都显示:>x[-n]

7)把向量x中的第1到5个元素显示出来:>x[1:5]

8)向量x除了第1到5个元素不显示,其它都显示:>x[-(1:5)]

9)把向量x中小于20的元素显示出来:>x[x<20]

12、按照指定的规律形成向量:>seq(5, 20)  --形成从5到20的向量,步长为1。

   >seq(5, 20, by=2)  --步长为2进行增长,可以简写为:>seq(5, 20, 2)

   >seq(5, 200, length=10)  --形成10个从2到200的向量。

13、产生26个字母的向量:>letters[1:30]

14、which()函数

   >x=(2,4,5,6,8,4,5,8,6,9,0,7,1)

   >which.max(x)  --取得向量x中最大值的下标。

   >x[which.max(x)]  --这个可以取出向量x中的最大修正。

   >which(x==2)  --取出向量x中值为2的元素下标。

   >which(x>5)

15、将向量颠倒:>rev(x)

16、升序:>sort(x)

      除序:>rev(sort(x))

17、生成矩阵的函数:>matrix()

   >x=(1:20)

   >matrix(x, nrow=4, ncol=5)  --把向量x生成一个4行5列的矩阵,默认是按列生成。

   >matrix(x, nrow=4, ncol=5, byrow=T)  --把向量x生成一个4行5列的矩阵,按行生成。

18、矩阵行列转换函数:>t()

   例如:矩阵x 4行5列

   >t(x)  --x变成了5行4列

   矩阵加减时,两个矩阵要有相同的行列数。

19、矩阵相乘:>x%*%y

20、求方阵的对角线:>diag(x)  --x是矩阵,方阵。

生成以向量x为对角线的矩阵:>diag(x)  --x是向量

形成4阶的单位矩阵:>diag(4)

21、按正态分步形成一个16个数字的向量:>rnorm(16)

22、矩阵求逆:>solve(x)  --运算结果是解线性方程组ax = b,若b缺省,则系统默认为单位矩阵,因此可用其进行矩阵求逆。

例:>solve(2, 6) 结果为:3,注:参数可以是向量也可以是矩阵。

23、求矩阵的特征值:>eigen()

24、判断是否是向量:>is.vector(x)

      判断是否是数组:>is.array(x)

      判断是否是矩阵:>is.matrix(x)

25、将一个向量转化成矩阵(数组)

      >x=c(3:8)

      >dim(x)<-c(2,3)  --形成一个2行3列的矩阵,矩阵就是一个多维的数组。

26、数据框与矩阵

      矩阵里的数据都是数字类型,但是数据框里是各种形态。在实际应用中,数据框更贴合我们。

      行称为观测值,列称为变量。

      生成数据框:>data.frame(x1, x2)  --x1、x2是两个长度相等的向量,也就是两个列。

27、散点图函数:>plot(x)  --x是上面形成的数据框。

      plot()是一个博大精深的函数。

28、读文本数据。首先要设置工作目录,然后把文件放于该目录下。

      >(x=read.table(“abc.txt”))

      文本或excel的数据均可通过剪切板操作。

      >y<-read.table(“clipboard”, header=F)

29、读excel数据方法一

      首先另存为csv文件,然后:>read.csv(“1234.csv”, header=T)

30、读excel数据方法二

      首先安装RODBC包,安装方法见上;

      然后装载RODBC:>library(RODBC)

      接着读取excel文件:>z<-odbcConnectExcel(“test.xls”)

      最后读取数据:(w<-sqlFetch(z, “Sheet1”))

31、for循环语句

      >for(i in 1:59) {a[i]=i}

      >a

32、while循环语句

      >while (a[i]<121) {i=i+1; a[i]=a[i-1]+2}

33、运行R脚本函数:>source(“D:\\h.r”)

      在脚本中输出要用print()函数,否则看不到结果。这个和控制台输出不一样。

34、几个常用函数

      正态分步函数:rnorm()

      泊松分步函数:rpois()

      指数分步函数:rexp()

      Gamma分步函数:rgamma()

      均匀分步函数:runif()

      二项分步函数:rbinom

      几何分步函数:rgeom()

      四舍五入函数:round()

35、将数据框写入文本文件

      >write.table(x, file=”D:\\mark.txt”, col.name=F, row.name=F, sep=””)

36、绘制直方图函数:hist()

      对x数据框中的x1列进行绘制直方图:>hist(x$x1)

37、体现某两列的关联关系,绘制x1,x2列的散点图:>plot(x$x1, x$x2)

38、列联表分析

      首先进行列联分析:>table(x$x1)

      然后绘制柱状图:>barplot(table(x$x1))

39、饼图函数:<pie()

      例:pie(table(x$x1))  --同样要先进行列联

40、箱尾图:>boxplot(x$x1, x$x2, x$x3)  --体现数据的集中情况,与方差的作用差不多。

      异常值、孤立点要排除掉

      水平箱尾图:>boxplot(x$x1, x$x2, x$x3, horizontal=T)

41、星相图:>stars(x[c(“x1”, ”x2”, ”x3”)])

      其它样式:> stars(x[c(“x1”, ”x2”, ”x3”)], full=T, draw.segment=T)

42、脸谱图:>faces(x[c(“x1”, ”x2”, ”x3”)])

      首先要安装aplpack包。

43、茎叶图:>stem(x$x1)

      体现每一个区间段有多少人。

44、QQ图

      >qqnorm(x1)

      >qqline(x1)

      用于判断是否正态分步、直线的斜率等

45、散点图

46、连线图

47、画线函数:>lines(x$x1, type=”l”, col=”blue”, lwd=2)  --lwd:线宽

48、密度函数:>density()

49、R语言内置数据集:>data()

50、热力图函数:>heatmap()

51、散点图集:>pairs()

52、在同一个device中输出多个散点图:>par(mfrow=c(3,1))

53、查看有多少颜色:>colors()

54、关于绘图参数

55、三维散点图

      首先安装scatterplot3d包

      >scatterplot3d(x[2:4])

56、调和曲线图,目的是用于聚类判断非常方便

      >source(“D:\\unison.R”)

      >unison(x[2:4])

57、地图

      首先安装maps包

      >map(“world”, fill=TRUE, col=head.colors(10))

58、社交数据可视化

      首先安装maps包和geosphere包,并加载。

      画出美国地图:>map(“state”)

      更多……

59、概率的相关知识(自己学习)

      概率:

      必然事件:

      不可能事件:

      对立事件:

      互斥事件:

      概率密度:

离散型分步:两点分步、二项分步、泊松分步

连续型分步:均匀分步、指数分步、正态分步

60、向量可以形象化地表示为带箭头的线段。箭头所指:代表向量的方向;线段长度:代表向量的大小。

61、R语言的各种分步函数

62、随机变量的数字特征

      1)期望(平均值)

      2)方差,可以理解为样本点距均值点的距离。

         标准差

63、总体与抽样

      大数定理与中心极限定理的意义

      常用统计量:样本均值,样本方差,标准差,众数,最小值,最大值,分位数,中位数 median(),百分位数 quantile(),上下四分位数。

64、五数总括:>fivenum(x$x1, na.rm=TRUE)

      中位数,下四分位数,上四分位数,最小值和最大值

65、相关系数:>cor(x$x1, x$x2),  cor.test(x$x1, x$x2)

      协方差:>cov(x$x1, x$x2)

66、一元线性回归,解决预测。

      最重要的是把回归直线求出来。

      >lm(w~1+h)   --线性模型函数

      >summary(a)  --查看详情信息

      预测函数:

      >z=data.frame(x=185)

      >priedict(a, z)

      前提:数据必须是正态分步、因变量和自变量必须是线性关系。

67、建立多元线性回归模型

      >s=lm(Fertility ~ ., data=swiss)  --点的含义是除因变量外所有的自变量

      >print(s)

      >summary(s)  --查看模型汇总信息

      注:如果不合适就要不停的修正,直到最好。方法如下:

      --逐步回归

      --向前引入法

      --向后剔除法

      --逐步筛选法

      >step(s, direction=”forward”)  --上面的方法无需手动操作,公式自动完成。

68、正态分步检验函数:>Shapiro.test()

69、R抽取随机数:> sample(0:1, size=30, replace=TRUE)

70、MIC