R語言學習筆記:基礎知識

獵手家園發表於2016-05-02

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

相關文章