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(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