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