1. 程式人生 > >R語言與統計分析---湯銀才

R語言與統計分析---湯銀才

關於R中的函式或關鍵字元

  • 命令
> help(fun) 或 ?fun  

會立即顯示名為“fun”函式的幫助頁

> apropos(fun) 或 apropos("fun")  

找出所有在名字中含有指定字串“fun”的函式,但只會在被載入
記憶體中的程式包中進行搜尋.

> help.search("char")  

列出所有在幫助頁面含有字元“char”的函式, 它的搜尋範圍
比apropos(“fun”)更廣

> find(fun) 或 find("fun")  

得到名為“fun”函式所在的程式包

> args(fun) 或 args("fun")  

得到名為“fun”函式的自變數列表.

資料的瀏覽與編輯

  1. 資料的瀏覽
> mtcars  

顯示mtcars中的32個觀測值

> head(mtcars)  

顯示資料集中前7行

> ==names==(mtcars)  

僅顯示資料集中的變數,此處未是一個,也就是data.frame中的列名(INDEX )

  1. 資料的編輯
> ==data.entry==(mtcars)  

通過R的資料編輯器開啟資料集mtcars, 除了瀏覽資料集外,這裡
我們還可以對變數及其觀測值進行修改.

> MTcars <- edit(mtcars)  

同樣啟動R的資料編輯器, 在此可對原來的資料集mtcars進行編輯,
完成後將生成的新的資料集賦給MTcars, 而原來的資料集保持不變.
如果你要修改原來的資料集,使命令edit( )前後的資料集同名即
可. 因此命令edit

(mtcars) 將無法完成對資料的修改.

> xnew <- edit(data.frame( ))  

可以編輯生成新的資料集xnew. 另外, 對於一維的資料, edit( )打
開的是R Editor. 試比較下面的例子中兩個命令的區別

> fix(mtcars) **等價於** > mtcars <- edit(mtcars)  

可以完成資料集mtcars的直接修改. 因此它等價於命令

  • 注意:
    • 命令data.entry( )和edit( )都可用於編輯向量、矩陣、資料
      框和列表,前者啟用的都是R的資料編輯器, 後者有所不同: 對於向量、
      列表和陣列edit( )啟用的是R Editor.
    • 儘管我們在R中可以瀏覽與編輯資料集mtcars, 但它們還無法對此資料
      集進行操作(分析), 例如命令
>  attach(mtcars)  

無法看到變數mpg(每加侖公里數)的具體數值. 這時我們需要啟用或掛
接(attach)資料集mtcars. 命令

> attach(mtcars)  
資料的屬性分析
  • 變數cyl(汽缸數)為屬性變數, 命令
> table(cyl)  

告訴我們變數cyl取3個值:4,6,8,相應的頻數為11, 7, 14. 而命令

> barplot(table(cyl))  

> barplot

顯示了cyl的頻數直方圖. 要注意的是, 命令

> barplot(cyl)  

> barplot

在此不適用, 它僅適用於數值型變數.

數值型資料的分析

統計分析中主要涉及數值型資料. 對此我們可考查它們的圖形特徵及常用
的特徵量.

  • 畫莖葉圖(stem-and-leaf plot), 命令為
> stem(mpg)
  10 | 44
  12 | 3
  14 | 3702258
  16 | 438
  18 | 17227
  20 | 00445
  22 | 88
  24 | 4
  26 | 03
  28 | 
  30 | 44
  32 | 49
  • 畫直方圖, 命令為
 > hist(mpg)

> hist

  • 畫框須圖(stem-and-leaf plot), 命令為
> boxplot(mpg)

> boxplot

  • 計算平均值, 命令為
>mean(mpg)
  • 計算截去10%的平均值, 命令為
> mean(mpg, trim = .1)
  • 按分組變數cyl計算mpg的分組平均值, 命令為
> tapply(mpg,cyl,mean)
4        6        8 
26.66364 19.74286 15.10000 
  • 計算cyl為4的那些mpg的平均值, 命令為
    > mean(mpg[cyl == 4])
  • 計算四分位數的極差(interquartile range), 命令為
> IQR(mpg)
  • 計算樣本常用的分位數: 極小、極大、中位數及兩個四分位數, 命令為
> quantile(mpg)
或者
> fivenum(mpg)
  • 計算由向量prob給定的各概率處的樣本分位數, 命令為
> quantile(mpg, probs)

例如probs = c(0.1, 0.5, 99.5)/100. 可見, quantile( )比fivenum( )更
為一般.

  • 計算常用的描述性統計量, 它們分別是最小值(Min.)、第一四分位數(1st
    Qu.)、中位數(Median)、平均值(Mean)、第三分位數(3rd Qu.)和最大
    值(Max.), 命令為
> summary(mpg)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
10.40   15.43   19.20   20.09   22.80   33.90 
  • 計算標準差, 命令為
> sd(mpg)
  • 計算中位絕對離差(median absolute deviation), 命令為
> mad(mpg)
尋找二元關係
  • 畫二維散點圖, 例如cyl與mpg的散點圖, 可通過下面的命令得到.
> plot(cyl,mpg)

cyl,mpg

注意: 相仿命令

> plot(hp,mpg)

hp,mpg

可得到hp與mpg的散點圖. 但32個點對應了不同的汽缸, 因此按**cyl為圖
例(不同cyl用不用符號區分)**作出散點圖更清晰, 命令為

> plot(hp,mpg,pch=cyl)
#> legend(250,30,pch=c(4,6,8),
#> legend=c("4 cylinders","6 cylinders","8 cylinders"))
> legend(250,30,pch=c(4,6,8),
legend=c("4 cylinders","6 cylinders","8 cylinders"))

圖例函式legend中的legend引數是必填,是標註每個圖例的名稱的