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