R第七問 R語言常用數學函式
阿新 • • 發佈:2019-02-18
語言的數學運算和一些簡單的函式整理如下:
向量可以進行那些常規的算術運算,不同長度的向量可以相加,這種情況下最短的向量將被迴圈使用。
改變編譯環境的語言(英語)
Sys.setenv(LANGUAGE="en")
> x <- 1:4
> a <- 10
> x * a
[1] 10 20 30 40
> x + a
[1] 11 12 13 14
> sum(x) #對x中的元素求和
[1] 10
> prod(x) #對x中的元素求連乘積
[1] 24
> prod(2:8) #8的階乘
[1] 40320
> prod(2:4) #4的階乘
[1] 24
> max(x) #x中元素的最大值
[1] 4
> min(x) #x中元素的最小值
[1] 1
> which.max(x) #返回x中最大元素的下標
[1] 4
> which.min(x) #返回x中最小元素的下標
[1] 1
> x <- 4:1 #對向量x重新賦值
> x
[1] 4 3 2 1
> which.min(x)
[1] 4
> which.max(x)
[1] 1
<%in% 包含於函式>
>x[x%in%c(2,3)]<-0
> x
[1] 1 0 0 4 ##把x中的2,3替換成0
一、資料管理
vector:向量 numeric:數值型向量 logical:邏輯型向量 character;字元型向量 list:列表 data.frame:資料框 c:連線為向量或列表 length:求長度 subset:求子集 seq,from:to,sequence:等差序列 rep:重複 NA:缺失值 NULL:空物件 sort,order,unique,rev:排序 unlist:展平列表 attr,attributes:物件屬性 mode,typeof:物件儲存模式與型別 names:物件的名字屬性
二、字串處理
character:字元型向量 nchar:字元數 substr:取子串 format,formatC:把物件用格式轉換為字串 paste,strsplit:連線或拆分 charmatch,pmatch:字串匹配 grep,sub,gsub:模式匹配與替換
三、複數
complex,Re,Im,Mod,Arg,Conj:複數函式
四、因子
factor:因子 codes:因子的編碼 levels:因子的各水平的名字 nlevels:因子的水平個數 cut:把數值型物件分割槽間轉換為因子 table:交叉頻數表 split:按因子分組 aggregate:計算各資料子集的概括統計量 tapply:對“不規則”陣列應用函式
數學
一、計算
+, -, *, /, ^, %%, %/%:四則運算 ceiling,floor,round,signif,1、round() #四捨五入 例:x <- c(3.1416, 15.377, 269.7) round(x, 0) #保留整數位 round(x, 2) #保留兩位小數 round(x, -1) #保留到十位 2、signif() #取有效數字(跟學過的有效數字不是一個意思) 例:略 3、trunc() #取整 floor() #向下取整 ceiling() #向上取整 例:xx <- c(3.60, 12.47, -3.60, -12.47) trunc(xx) floor(xx) ceiling(xx)
max,min,pmax,pmin:最大最小值 range:最大值和最小值 sum,prod:向量元素和,積 cumsum,cumprod,cummax,cummin:累加、累乘 sort:排序 approx和approx fun:插值 diff:差分 sign:符號函式
二、數學函式
abs,sqrt:絕對值,平方根 log, exp, log10, log2:對數與指數函式 sin,cos,tan,asin,acos,atan,atan2:三角函式 sinh,cosh,tanh,asinh,acosh,atanh:雙曲函式
beta,lbeta,gamma,lgamma,digamma,trigamma,tetragamma,pentagamma,choose ,lchoose:與貝塔函式、伽瑪函式、組合數有關的特殊函式
fft,mvfft,convolve:富利葉變換及卷積 polyroot:多項式求根 poly:正交多項式 spline,splinefun:樣條差值 besselI,besselK,besselJ,besselY,gammaCody:Bessel函式 deriv:簡單表示式的符號微分或演算法微分
三、陣列
array:建立陣列 matrix:生成矩陣 data.matrix:把資料框轉換為數值型矩陣 lower.tri:矩陣的下三角部分 mat.or.vec:生成矩陣或向量 t:矩陣轉置 cbind:把列合併為矩陣 rbind:把行合併為矩陣 diag:矩陣對角元素向量或生成對角矩陣 aperm:陣列轉置 nrow, ncol:計算陣列的行數和列數 dim:物件的維向量 dimnames:物件的維名 row/colnames:行名或列名 %*%:矩陣乘法 crossprod:矩陣交叉乘積(內積) outer:陣列外積 kronecker:陣列的Kronecker積 apply:對陣列的某些維應用函式 tapply:對“不規則”陣列應用函式 sweep:計算陣列的概括統計量 aggregate:計算資料子集的概括統計量 scale:矩陣標準化 matplot:對矩陣各列繪圖 cor:相關陣或協差陣 Contrast:對照矩陣 row:矩陣的行下標集 col:求列下標集
四、線性代數
solve:解線性方程組或求逆 eigen:矩陣的特徵值分解 svd:矩陣的奇異值分解 backsolve:解上三角或下三角方程組 chol:Choleski分解 qr:矩陣的QR分解 chol2inv:由Choleski分解求逆
五、邏輯運算
<,>,<=,>=,==,!=:比較運算子 !,&,&&,|,||,xor():邏輯運算子 logical:生成邏輯向量 all,any:邏輯向量都為真或存在真 ifelse():二者擇一 match,%in%:查詢 unique:找出互不相同的元素 which:找到真值下標集合 duplicated:找到重複元素
六、優化及求根
optimize,uniroot,polyroot:一維優化與求根
程式設計
一、控制結構
if,else,ifelse,switch:分支 for,while,repeat,break,next:迴圈 apply,lapply,sapply,tapply,sweep:替代迴圈的函式。
二、函式
function:函式定義 source:呼叫檔案 call:函式呼叫 .C,.Fortran:呼叫C或者Fortran子程式的動態連結庫。 Recall:遞迴呼叫 browser,debug,trace,traceback:程式除錯 options:指定系統引數 missing:判斷虛參是否有對應實參 nargs:引數個數 stop:終止函式執行 on.exit:指定退出時執行 eval,expression:表示式計算 system.time:表示式計算計時 invisible:使變數不顯示 menu:選擇選單(字元列表選單)
其它與函式有關的還有:delay,delete.response,deparse,do.call,dput,environment ,,formals,format.info,interactive, is.finite,is.function,is.language,is.recursive ,match.arg,match.call,match.fun,model.extract,name,parse,substitute,sys.parent ,warning,machine
三、輸入輸出
cat,print:顯示物件 sink:輸出轉向到指定檔案 dump,save,dput,write:輸出物件 scan,read.table,load,dget:讀入
四、工作環境
ls,objects:顯示物件列表 rm, remove:刪除物件 q,quit:退出系統 .First,.Last:初始執行函式與退出執行函式。 options:系統選項 ?,help,help.start,apropos:幫助功能 data:列出資料集 head()檢視資料的頭幾行 tail()檢視資料的最後幾行
統計計算
一、統計分佈
每一種分佈有四個函式:d――density(密度函式),p――分佈函式,q――分位數函式,r――隨機數函式。 比如,正態分佈的這四個函式為dnorm,pnorm,qnorm,rnorm。下面我們列出各分佈字尾,前面加字首d、p、q或r就構成函式名:
norm:正態,t:t分佈,f:F分佈,chisq:卡方(包括非中心) unif:均勻,exp:指數,weibull:威布林,gamma:伽瑪,beta:貝塔 lnorm:對數正態,logis:邏輯分佈,cauchy:柯西, binom:二項分佈,geom:幾何分佈,hyper:超幾何,nbinom:負二項,pois:泊松 signrank:符號秩, wilcox:秩和,tukey:學生化極差
二、簡單統計量
sum, mean, var, sd, min, max, range, median, IQR(四分位間距)等為統計量,sort,order,rank與排序有關,其它還有ave,fivenum,mad,quantile,stem等。
三、統計檢驗
R中已實現的有chisq.test,prop.test,t.test。
四、多元分析
cor,cov.wt,var:協方差陣及相關陣計算 biplot,biplot.princomp:多元資料biplot圖 cancor:典則相關 princomp:主成分分析 hclust:譜系聚類 kmeans:k-均值聚類 cmdscale:經典多維標度 其它有dist,mahalanobis,cov.rob。
五、時間序列
ts:時間序列物件 diff:計算差分 time:時間序列的取樣時間 window:時間窗
六、統計模型
lm,glm,aov:線性模型、廣義線性模型、方差分析