R語言筆記——常用函數、統計分析、數據類型、數據操作、幫助、安裝程序包、R繪圖_第1頁
R語言筆記——常用函數、統計分析、數據類型、數據操作、幫助、安裝程序包、R繪圖_第2頁
R語言筆記——常用函數、統計分析、數據類型、數據操作、幫助、安裝程序包、R繪圖_第3頁
R語言筆記——常用函數、統計分析、數據類型、數據操作、幫助、安裝程序包、R繪圖_第4頁
R語言筆記——常用函數、統計分析、數據類型、數據操作、幫助、安裝程序包、R繪圖_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、R語言學習筆記常用函數1、聚類§ 常用的包: fpc,cluster,pvclust,mclust§ 基于劃分的方法: kmeans, pam, pamk, clara§ 基于層次的方法: hclust, pvclust, agnes, diana§ 基于模型的方法: mclust§ 基于密度的方法: dbscan§ 基于畫圖的方法: plotcluster, plot.hclust§ 基于驗證的方法: cluster.stats2、分類§ 常用的包§ rpart,party,randomForest,r

2、partOrdinal,tree,marginTree,maptree,survival§ 決策樹: rpart, ctree§ 隨機森林: cforest, randomForest§ 回歸, Logistic回歸, Poisson回歸: glm, predict, residuals§ 生存分析: survfit, survdiff, coxph3、關聯規則與頻繁項集§ 常用的包§ arules:支持挖掘頻繁項集,最大頻繁項集,頻繁閉項目集和關聯規則§ DRM:回歸和分類數據的重復關聯模型§ APRIORI算法

3、,廣度RST算法:apriori, drm§ ECLAT算法: 采用等價類,RST深度搜索和集合的交集: eclat4、序列模式§ 常用的包: arulesSequences§ SPADE算法: cSPADE5、時間序列§ 常用的包: timsac§ 時間序列構建函數: ts§ 成分分解: decomp, decompose, stl, tsr6、統計§ 常用的包: Base R, nlme§ 方差分析: aov, anova§ 密度分析: density§ 假設檢驗:  t.test

4、, prop.test, anova, aov§ 線性混合模型:lme§ 主成分分析和因子分析:princomp7、圖表§ 條形圖: barplot§ 餅圖: pie§ 散點圖: dotchart§ 直方圖: hist§ 密度圖: densityplot§ 蠟燭圖, 箱形圖 boxplot§ QQ (quantile-quantile) 圖: qqnorm, qqplot, qqline§ Bi-variate plot: coplot§ 樹: rpart§ Parallel

5、 coordinates: parallel, paracoor, parcoord§ 熱圖, contour: contour, filled.contour§ 其他圖: stripplot, sunflowerplot, interaction.plot, matplot, fourfoldplot,assocplot, mosaicplot§ 保存的圖表格式: pdf, postscript, win.metafile, jpeg, bmp, png8、數據操作§ 缺失值:na.omit§ 變量標準化:scale§ 變量轉置:t

6、§ 抽樣:sample§ 堆棧:stack, unstack§ 其他:aggregate, merge, reshape9、與數據挖掘軟件Weka做接口§ RWeka: 通過這個接口,可以在R中使用Weka的所有算法。安裝程序包1 用函數 install.packages()2 安裝本地zip包路徑:Packages>install packages from local files查看安裝的包 installed.packages()檢查更新 old.packages()更新update.packages()幫助l 查看幫助文檔?install.

7、package() help(“install.package”)l 函數幫助?functionhelp(function)l html幫助Help.start()幫助>Html幫助l 關鍵詞搜索RSiteSearch(word)數據類型向量l 創建向量c( ),創建向量length( ), 向量長度刪除向量vector-n,即刪除第n個向量mode( ), 向量類型rbind( ), 向量元素都作為一行rowcbind( ) ,向量元素都作為一列col*創建向量序列seq(from, to, by = (to - from)/(length.out - 1),length.),leng

8、th是總長度(個數),因此by就是間隔rep(mode,time) 產生mode 重復time次的向量lettersn:m 產生字符向量rnorm(n,mean=,sd=) 隨機序列l 取子集l 值范圍限制如:V(x>m|x<n)l 索引坐標限制如:Vc(),V1:3l 創建向量空間V=vector()創建向量空間后就可以對向量元素進行賦值l 常用計算函數mean(x ), sum( x), min( x), max( x), var( x), 方差sd( x), 標準差cov(x), 協方差cor(x), 相關度prod(x ),所有值相乘的積which(x的表達式),which

9、.min(x),which.max(x)rev(x),反轉sort(x),排序因子因子是用水平來表示所有可能取的值l 創建(轉換)因子factor(v,level=vl) level不指定則默認v中所有值gl(k,n) k是因子的水平個數,n是每個水平重復的個數l 因子統計nlevels(factor) 查看因子水平table(factor) 頻數prop.table(factor) 概率l 交叉統計對于兩個向量進行統計會構成一張交叉的表table(factor1,factor2)向量命名names(v)=c(“area1”,”area2”,),命名后就可以按名稱取值了,v“area1”矩陣l

10、 創建矩陣1. matrix(v, nrow = 1, ncol = 1, byrow = FALSE),一列(不是行)一列的分配,當數據不夠時候就會重復.函數matrix()用來定義最常用的一種數組:二維數組,即矩陣。其完全格式為matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL)其中第一自變量data為數組的數據向量(缺省值為缺失值NA),nrow為行數,ncol為列數,byrow表示數據填入矩陣時按行次序還是列次序,一定注意缺省情況下按列次序,這與我們寫矩陣的習慣是不同的。dimnames缺省是空值,否

11、則是一個長度為2的列表,列表第一個成員是長度與行數相等的字符型向量,表示每行的標簽,列表第二個成員是長度與列數相同的字符型向量,表示每列的標簽。2.dim(x)=value value是一個向量,指定行數列數,分配方式與上面一樣3.另外就是通過rbind()綁定多個向量l 行列命名colnames(matrix)=c(“”,”,)rownames(matrix)=c(“”,”,)l 矩陣運算矩陣相乘:A%*%Bt(matrix),矩陣轉置diag(matrix ),矩陣的對角(向量);diag(diag(matrix ),對角矩陣solve(matrix),矩陣求逆eigen( matrix

12、),特征值和特征向量svd(matrix),奇異值分解,返回X包含屬性U、d、V工作空間對象ls() 列舉所有對象rm() 刪除對象數據框l 創建數據框data.frame(x1,x2,)或帶上列的名稱data.frame(=x1,=x2,)在創建數據框的時候,字符串的列會自動的轉換成因子,以方便統計l 數據框取值datax,y(取單個值) datax(取第x列的數據組成的數據框) datax,(取第x行的數據) data,y(取第y列的數據) dataa:b,y(取a-b行的第y列的數據)datac(“colName1”,” colName1”,”,) ,根據列名

13、進行訪問注意:datax與 data,y的不同,data,y取值后返回的是一個一維向量ü 限定取值可以通過限制列的范圍來取子集,但此時同時一定要指定取哪些列,如datadata$col>k,c(“col1”,”col2”,),用attach(data)可以簡化這一步操作,即在attach之后可以直接訪問列(所有),datadata$col>k,用detach可以解除。另一種控制條件查詢的方式即通過subset函數取子集Subset(data,colName>k),此時colName是數據框的一個列屬性ü 篩選which()函數進行篩選,which中是篩選條

14、件,如:is.na()l 編輯數據edit(data)l 查看數據框屬性查看數據維度:dim(data) 返回:行,列單獨查看行數列數:nrow(data)、ncol(data)查看列名:names(data),同時修改列名:names(data)=c(“”,”,)查看數據結構:str(data)查看屬性(列名$names、類$class、列$s),attributes(data)l 添加一列data$addCol=c(“”,”,),添加列的元素應與原來的行數相等merge(dataframeA,dataframeB,by=c(“”,”,),橫向合并(添加多列)數據操作數據處理

15、l 變量重命名,調用fix(data),出現一個交互式工具;或者rename(dataframe,c(oldname=”newname,”)l 類型轉換:is.datatype()判斷,as.datatype()轉換l 字符串處理:nchar(),計算字符數量substr(x,start,stop)grep(pattern,v),返回向量坐標sub(pattern,replacement,x),替換strsplit(x,split)分割paste(x,c(),sep=”),在x后面(向量個數)連接c()向量,以sep分隔cat(“str1”,”str2”,),連接字符串toupper()tol

16、ower()讀取文件數據data=read.table(”位置”, header=T)讀取文本文件data=read.csv(”位置”,header=T)讀取csv文件在數據導入R語言后,會以數據框(dataframe)的形式儲存。dataframe是一種R的數據格式,可以將它想象成類似統計表格,每一行都代表一個樣本點,而每一列則代表了樣本的不同屬性或特征。初學者需要掌握的基本操作方法就是dataframe的編輯、抽取和運算。數據庫操作1、配置數據元安裝connector配置數據源(控制面板à管理工具à數據源)2、連接數據庫odbcConnect(data_src,uid=

17、" ",pwd=" ")3、查詢這個是一個通用類型的操作,即可以查詢,又可以添加刪除修改sqlQuery(channel,"sql")4、更新數據庫表,并讀取數據(問題暫未解決)sqlSave(channel,mydata,'NEW_TABLE_NAME',append = TRUE)表若不存在則新建,默認以數據框命名。mydata數據框:data.frame()函數建立描述統計l 統計函數mean()Median()var()mad(),絕對中位差quantile(x,probs),求分位數range(),值域sum

18、()diff(v,lag=n),滯后差分min()max()scale(),按列標準化l 概率函數l 分布函數Beta分布 beta()柯西分布 cauchy()卡方分布 chisq()t分布 t()F分布 f()Logistic分布 logis()均勻分布 unif()正態分布函數rnorm( )對數正態分布 lnorm()多項分布 mutinom()泊松分布函數pois( )指數分布函數exp( )Gamma分布函數gamma( )均勻分布函數unif( )二項分布函數binom( ) 幾何分布函數geom( ) l 將這些分布函數加上第一個字母:d=密度函數p=分布函數q=分位數函數r=

19、生成隨機數 l 統計與整合(分組)l summary()描述統計是一種從大量數據中壓縮提取信息的工具,最常用的就是summary命令,運行summary(data)得到結果如下:對于數值變量計算了五個分位點和均值,對于分類變量則計算了頻數(顯示最高的前五個)l aggregate(x, by, FUN, ., simplify = TRUE)對數據x,通過by指明的變量,以FUN的方式進行整合。x是一個數據框的一個屬性by有哪些因子去進行統計FUN是計算的方法這個函數最后返回的是一個組織好的數據框l sapply(x,FUN,options),指定統計方法進行描述options是FUN的參數。

20、另外,可以自定義統計函數,返回是一個向量。描述統計將根據自定義的函數計算,最終返回這個向量。l by(x,INDICES,FUN),也可以對數據進行整合描述,其中,INDICES是一個因子或列表。l table()統計頻數。l 列聯表l 創建表table(data),創建一維列聯表table(A,B),創建二維列聯表(矩陣式),A是行,B是列xtabs(formula,data),根據formula的格式創建。formula可以為A+B抽樣函數:Sample(x,size=,replace=T)l 處理表prob.table(table,margins),比例,margins是邊際(1表示行與

21、行相比,2表示列與列相比)margin.table(table,margins),頻數addmargins(tables,margins),為表格添加邊際ftable(table)常用統計推斷l 獨立性檢驗l 卡方獨立性檢驗chisq.test()p<0.01則拒絕假設,p>0.05則不拒絕。l Fisher精確性檢驗fisher.test(),假設是:邊界固定的列聯表行和列是相互獨立的。l Corchran-Mantel-Haenszel檢驗mantelhaen.test(),假設:兩個名義變量在第三個變量的每一層中都是獨立的。l 相關性度量l assocstats(),較大的值

22、意味著較強的相關性。l cor(x,use,method=),計算相關系數;use指定缺失數據的處理方式,method指定相關系數的類型(Pearson、spearman、Kendall三種)cor.test(x,y,alternative=,method=),對x、y的相關性檢驗,alternative表示總體的相關系數大于還是小于0(less小于0,greater大于0,two.side,不等于0)l cov(),計算協方差。l pcor(u,S),偏相關,指控制一個或多個變量后,另外兩個變量之間的相互關系。u是一個數值向量,前兩個數值表示要計算相關性的下標,后面的表示要控制的變量。S為變

23、量的協方差矩陣。l t檢驗l 獨立性檢驗t.test(yx,data),y是一個數值變量,x是一個二分變量。t.test(y1,y2),y1,y2是數值向量。l 非獨立性檢驗假定組件差異成正態分布。t.tet(y1,y2,paired=TRUE) 時間序列ts(data = NA, start = 1, end = numeric(), frequency = 1, deltat = 1, ts.eps = getOption("ts.eps"), class = , names = )as.ts(x, .)強制轉化為時間序列is.ts(x)判斷是否為時間序列統計分析回歸分

24、析a = lm(formula =, data = dataframe)formula:回歸函數的表達式(模型公式),如:yx1+x2,其中的參數是數據框列的名稱求模型系數> coef(a)提取模型公式> formula(a)plot(a) 繪畫模型診斷圖(不理解)預測:predict(a,z),z是新的數據框,利用回歸函數a對z進行預測方差分析ANOVAl 概述方差分析是用于兩個及兩個以上樣本均數差別的顯著性檢驗。方差分析的因變量是連續型資料,自變量是分類變量,一般都以組別的形式出現。方差分析是比較組間差異,組間差異的來源有(1)隨機誤差,組內差異(2)控制條件,組間差異。方差分

25、析的基本思想是:通過分析研究不同來源的變異對總變異的貢獻大小,從而確定可控因素對研究結果影響力的大小。方差分析的檢驗方式是F檢驗(對組間的差異性檢驗)。l 方差分析類別方差分析根據自變量的個數可以有單因素,雙因數、三因數等;根據因子的類型,可以分為組內因子和組間因子;另外因變量如果是多個則可以是多元方差分析。l 模型擬合方差分析和回歸分析都是廣義線性模型,因此方差分析也可以用lm()進行。aov(formula,data=dataframe),同lm一樣,返回的也是一個擬合值,formula的不同就是分析的因素不同,常用的formula有:y A單因素分析y x+A含有協變量的單因素y A*B

26、雙因素,*表示A和B之間的交互(展開為A+B+A:B)l 單因素方差分析單因素分析是比較兩個或多個組別的因變量均值。fit=aov(AB)summary(fit)l 雙因素方差分析fit=aov(yA*B)交互性顯示:interaction.plot(A,B,y,)l 多元方差分析當因變量不止一個時,可以用多元方差同時分析。manova(c()A)廣義線性模型在許多情況下,因變量可能不符合正態分布,如:Ø 結果變量是類別型的。Ø 結果變量是計數型的(有限,并且均值與方差是相關的,正態分布是相互獨立的)。l 廣義線性模型l 線性模型Y=0+j=1pjXj對于廣義線性模型,只需

27、要保證參數(0,1,)為線性即可,因此定義廣義線性模型如下形式:g(Y)=0+j=1pjXj其中,g()是條件均值的函數(連接函數)。l glm()函數glm(formula,family=family(link=function),data=)family=指明了概率分布和相應的連接函數,分布族默認的連接函數:binomial (link = "logit")gaussian (link = "identity")gamma (link = "inverse")inverse.gaussian (link = "1/mu2

28、")poisson (link = "log")quasi (link = "identity", variance = "constant")quasibinomial (link = "logit")quasipoisson (link = "log")默認的link可以在使用的時候省略。例如,對于logistic回歸,假設符合二項分布,則可以用family= binomial (link = "logit")來表示。l Logistic回歸logistic回歸

29、是一個二值檢驗,因此首先需要將要檢驗的因子(因變量)轉換為二值因子。對于數值變量可以設置界定,上界與下界分別取一個因子。同樣的,可以通過p值觀測變量的顯著性,而重新定義擬合模型。l 模型的比較可以使用anova(),設兩套線性模型分別是fit.full和fit.reduced,利用卡方檢驗進行比較,如:anova(fit.reduced,fit.full,test="Chisq")它們的顯著性(p值),說明了兩個模型的擬合程度。也就是說,在擬合程度相似的情況下,fit.reduced下面的變量確實具有更高的顯著性效果,而其他的卻不具備。主成分分析(PCA)與因子分析(EFA

30、)主成分分析是一種數據降維方法,將大量相關變量轉換為一組低維不相關的變量。主成分分析是觀測變量的一個線性組合,權重是通過最大化各主成分所解釋的方差獲得的。如:PC1=a1X1+a2X2+akXk探索因子分析是用來發現一組變量的潛在結構的方法。尋找一組更小的、潛在的結構來解釋已觀測的、顯示的變量間的關系。分析的一般步驟:(1)、數據預處理(2)、選擇因子模型(3)、判斷選擇的主成分/因子數目(4)、選擇主成分/因子(5)、旋轉主成分/因子(6)、解釋結果(7)、計算主成分或因子得分l 主成分分析l 主成分個數確定Ø 根據解釋變量方差的積累值的閾值來判斷需要的主成分數目;Ø 通

31、過變量間K*K的相關系數矩陣來判斷保留的主成分數目。特征值方法:第一主成分與最大特征值關聯,第二主成分與第二大的關聯,依次下去。Ø 碎石檢驗繪制了特征值與主成分的圖形,在圖形變化最大處之上的主成分都可以保留。特征值的判別標準函數:fa.parallel(data,fa=”,n.iter=)繪制結果如圖:圖中表示了三種特征值的判別準則,藍線展示了基于觀測值的碎石檢驗,虛線表示根據n.iter個隨機數矩陣推導出來的特征值均值,實線表示大于1的特征值準則。圖中顯示了只需要保留1個主成分即可以保留大部分信息。l 提取主成分principal(r,nfactors=,rotate=,score

32、s=)r是相關系數矩陣或原始矩陣;nfactor是主成分數目,默認為1;rotate指定旋轉方法,默認最大方差旋轉(varimax);scores設定是否需要計算主成分得分(默認不需要)。 結果中,PC1欄包含了成分載荷,指出了觀測變量與主成分的相關系數;h2欄指出了成分公因子方差主成分對每個變量的方差解釋度;u2欄指成分唯一性方差無法被主成分解釋比例。SS loadings包含了主成分相關聯的特征值,Proportion var表示主成分對整體數據集的解釋程度。l 主成分旋轉旋轉是將一系列成分載荷變得更容易解釋,它們盡可能的對成分去噪。旋轉的方法有兩種:Ø 使選擇的成分保持不相關(

33、正交旋轉);Ø 讓它們變得相關(斜交旋轉)。方差極大旋轉,對載荷陣的列進行去噪,使得每個變量只由一組有限變量解釋。l 獲取主成分得分設置scores=TRUE,可以獲得每個對象在該主成分上的得分。因此,這里的r只能是原始數據,否則需要另外通過相關系數進行計算。l 因子分析因子分析是通過發掘隱藏在數據下的一組較少的、更為基本的無法觀測的變量,來解釋一組可觀測變量的相關性。每個因子被認為可解釋多個觀測變量間共有的方差(因此又稱為公共因子)。模型形式是:Xi=a1F1+a2F2+akFk+UiUi是Xi獨有的部分,無法被公共因子解釋。l 判斷公共因子數目fa.parallel()將fa=”

34、both”,將同時展現主成分與公共因子分析的結果。l 提取公共因子fa(r,nfactors=,n.obs=,rotate=,scores=,fm=)n.obs是觀測數,輸入相關系數時需要填寫;fm設定因子化方法,默認是最小殘差法(minres),另外還有:最大似然法(ml),主軸迭代法(pa),加權最小二乘法(wls),廣義加權最小二乘法(gls)。l 因子旋轉Ø 正交旋轉結果分析rotate=”varimax”可以看到reading和vocab在第一因子上載荷較大,picture、blocks和maze在第二因子上載荷較大,而general較為平均。這說明了包含的兩個因子語言類和

35、非語言類。Ø 斜交旋轉結果可以看出兩者的不同之處。正交旋轉,因子分析側重于結構矩陣(變量與因子的相關系數);斜交分析,因子分析會考慮三個矩陣:因子結構矩陣、因子模式矩陣和因子關聯矩陣。R繪圖繪圖初探l 圖形參數par()返回當前圖形參數的列表par(optionname=value,)常用參數參數用途值符號與線條pch繪制點時的符號形狀025cex符號的大小默認大小的倍數lty線條的類型16lwd線條的寬度默認大小的倍數顏色col繪圖顏色字符向量col.axis坐標軸刻度col.lab坐標軸標簽col.main標題col.sub副標題fg前景bg背景l 自定義屬性標題title()坐

36、標軸axis()參考線abline(h=yvalues,v=xvalues)圖例legend(location,title,legend,),legend是圖例標簽的字符向量文本標注text(),mtext()l 圖形組合par(mfrow=c(nrows,ncols)layout(matrix),matrix指定了圖形組合的位置布局l 基本圖形l 條形圖barplot(x,main=”,xlab=”,ylab=”,horiz=FALSE)堆砌與分組條形圖barplot(x,main=”,xlab=”,ylab=”,horiz=FALSE,col=c(),legend=c(),besides=FALSE),繪圖對象是一個二維矩陣形式l 餅狀圖pie()扇形圖,plotrix包的fan.plot(x,labels=c(),適合于大小的比較l 直方圖hist(x,breaks=n,),breaks可以指定直方圖的條數l 核密度圖,密度函數density(x)密度圖的繪制可以是pl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論