R語言之常用函數(shù)對(duì)一般數(shù)據(jù)進(jìn)行運(yùn)算的常用函數(shù): 數(shù)學(xué)函數(shù): 1,、round() #四舍五入 例:x <- c(3.1416, 15.377, 269.7) round(x, 0) #保留整數(shù)位 round(x, 2) #保留兩位小數(shù) round(x, -1) #保留到十位 2,、signif() #取有效數(shù)字(跟學(xué)過的有效數(shù)字不是一個(gè)意思) 例:略 3,、trunc() #取整 floor() #向下取整 ceiling() #向上取整 例:xx <- c(3.60, 12.47, -3.60, -12.47) trunc(xx) floor(xx) ceiling(xx) 4,、logb(a, b) #以b為底的對(duì)數(shù),省略b表示自然對(duì)數(shù) log() #自然對(duì)數(shù) log10() #以10為底的常用對(duì)數(shù) 例:logb(8, 2) log(8); logb(8) log10(100); logb(100, 10) 5,、sqrt() #平方根 exp() #指數(shù) 6,、sin() #正弦 cos() #余弦 tan() #正切 asin() #反正弦 acos() #反余弦 atan() #反正切 sinh() #雙曲正弦 tanh() #雙曲正切 7、nchar() #字符長(zhǎng)度 例:xx <- 'China is a great country' nchar(xx) 8,、substring() #取子字符串 例:substring(xx, 1, 5) 9,、paste() #連接字符 語法是:paste(..., sep = " ", collapse = NULL) 例1:x <- 'I'; y <- 'am'; z <- 'a'; d <- 'student' paste(x, y, z, d) 例2:paste(c('x', 'y'), 1:4, sep = '') 例3:paste('x', 1:4, sep = '', collapse = '+') ------------------------------------------------------------------------------------------------------------------------------------------ 10、計(jì)算 +, -, *, /, ^, %%, %/%:四則運(yùn)算ceiling,,floor,,round,signif,,trunc,,zapsmall:舍入max,min,,pmax,,pmin:最大 最小值 range:最大值和最小值sum,prod:向量元素和,,積cumsum,,cumprod,cummax,,cummin:累加,、累乘sort:排序 approx和approx fun:插值diff:差分sign:符號(hào)函數(shù) ------------------------------------------------------------------------------------------------------------------------------------------ 11、自己寫函數(shù)程序流程 一,、控制結(jié)構(gòu) if,,else,ifelse,,switch:分支for,while,,repeat,,break,next:循環(huán)apply,,lapply,,sapply,tapply,,sweep:替代循環(huán)的函數(shù),。 二、函數(shù) function:函數(shù)定義 source:調(diào)用文件 call:函數(shù)調(diào)用.C,,.Fortran:調(diào)用C或者Fortran子程序的動(dòng)態(tài)鏈接庫,。Recall:遞歸調(diào)用 browser,,debug,trace,,traceback:程序調(diào)試options:指定系統(tǒng)參數(shù) missing:判斷虛參是否有對(duì)應(yīng)實(shí)參nargs:參數(shù)個(gè)數(shù) stop:終止函數(shù)執(zhí)行on.exit:指定退出時(shí)執(zhí)行 eval,,expression:表達(dá)式計(jì)算system.time:表達(dá)式計(jì)算計(jì)時(shí) invisible:使變量不顯示menu:選擇菜單(字符列表菜單) 其它與函數(shù)有關(guān)的還有: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:顯示對(duì)象 sink:輸出轉(zhuǎn)向到指定文件 dump,,save,dput,,write:輸出對(duì)象 scan,,read.table,load,,dget:讀入 四,、工作環(huán)境 ls,objects:顯示對(duì)象列表 rm, remove:刪除對(duì)象 q,quit:退出系統(tǒng) .First,,.Last:初始運(yùn)行函數(shù)與退出運(yùn)行函數(shù) options:系統(tǒng)選項(xiàng) ,,help,help.start,,apropos:幫助功能 data:列出數(shù)據(jù)集 ------------------------------------------------------------------------------------------------------------------------------------------- 12,、統(tǒng)計(jì)計(jì)算函數(shù) 一、統(tǒng)計(jì)分布 每一種分布有四個(gè)函數(shù):d――density(密度函數(shù)),,p――分布函數(shù),,q――分位數(shù) 函數(shù),r――隨機(jī)數(shù)函數(shù),。比如,,正態(tài)分布的這四個(gè)函數(shù)為dnorm,pnorm,,qnorm,,rnorm。各分布后綴,,前面加前綴d,、p、q或r就構(gòu)成函數(shù)名: norm:正態(tài) t:t分布 f:F分布 chisq:卡方(包括非中心) unif:均勻 exp:指數(shù) weibull:威布爾 gamma:伽 瑪 beta:貝塔 lnorm:對(duì)數(shù)正態(tài) logis:邏輯分布 cauchy:柯西 binom:二項(xiàng)分布 geom:幾何分布 hyper:超幾 何 nbinom:負(fù)二項(xiàng) pois:泊松 signrank:符號(hào)秩 wilcox:秩和 tukey:學(xué)生化極差 二,、簡(jiǎn)單統(tǒng)計(jì)量 sum, mean, var, sd, min, max, range, median, IQR(四分位間距)等為統(tǒng)計(jì) 量 sort,,order,rank與排序有關(guān) 其它還有ave,,fivenum,,mad,quantile,,stem等,。 三、統(tǒng)計(jì)檢驗(yàn) R中已實(shí)現(xiàn)的有chisq.test,,prop.test,,t.test。 四,、多元分析 cor,,cov.wt,var:協(xié)方差陣及相關(guān)陣計(jì)算 biplot,,biplot.princomp:多元數(shù)據(jù)biplot圖 cancor:典則相關(guān) princomp:主成分分析 hclust:譜系聚類: kmeans:k-均值聚類 cmdscale:經(jīng)典多維標(biāo)度 其它有dist,mahalanobis,,cov.rob,。 五、時(shí)間序列 ts:時(shí)間序列對(duì)象 diff:計(jì)算差分 time:時(shí)間序列的采樣時(shí)間 window:時(shí)間窗 六,、統(tǒng)計(jì)模型 lm,,glm,,aov:線性模型、廣義線性模型,、方差分析 -------------------------------------------------------------------------------------------------------------------------------------------- 13,、其他 (1)rm(list = ls()) #清空控制臺(tái)所有向量 (2)setwd("D:/ziliao/zhuanye/R bear/R code") #設(shè)置工作目錄 (3)library(Biostrings) #調(diào)用程序包 (4)aa <- AAString("LANDEECQW") #將一個(gè)字符向量轉(zhuǎn)化成氨基酸序列aa (5)typeof(aa) #查看aa類型 [1] "S4" #aa為S4方法類型 (6)write(aa,"chuana.txt") #嘗試將aa輸出到文件chuana.txt中 (7)aa=as.character(aa) #將aa轉(zhuǎn)化為字符向量 (8)write(aa,"chuana.txt") #再次輸出 ------------------------------------------------------------------------------------------------------------------------------------ 奇葩函數(shù) 看別人的代碼會(huì)遇到一些奇葩的函數(shù),一般的教程上很少提到,,但卻有很好的用處,,這類函數(shù)基本上分布在base以及utils包中,下面將它們略為歸納一下,,以備后用,。 1 文件執(zhí)行: 在用R生成一個(gè)PDF文檔后,如果想去打開它,,你可能會(huì)在文件夾里找到再點(diǎn)開,。再或者我們想調(diào)用系統(tǒng)中的其它程序來做點(diǎn)事情,可能要打開cmd敲點(diǎn)命令,。實(shí)際上這都可以在R內(nèi)部完成,。舉例來說用pandoc轉(zhuǎn)換na.md成docx再打開它。 system('pandoc d:\\rspace\\na.md -o d:\\rspace\\na.docx') shell.exec('d:\\rspace\\na.docx') 2 網(wǎng)絡(luò)瀏覽: browseURL:瀏覽某個(gè)指定的網(wǎng)頁 download.file:下載網(wǎng)絡(luò)文件到本地 3 文件操作 dir.create:新建一個(gè)文件夾 list.dirs:顯示目錄下的文件夾 list.files:顯示目錄下的文檔 file.create:文檔創(chuàng)建 file.exists:判斷文檔是否存在 file.remove:文檔刪除 file.rename:重命名 file.append:文檔添加 file.copy:文檔復(fù)制 file.symlink(from, to) file.show:顯示文檔內(nèi)容 file.info:顯示文檔信息 file.edit:編輯文檔 zip: 壓縮文件 unzip: 解壓縮文件 4 運(yùn)算進(jìn)度條 在一個(gè)大循環(huán)運(yùn)算時(shí),,如果可以看到目前的進(jìn)度是比較方便的,,txtProgressBar和setTxtProgressBar函數(shù)可以幫助做到這一點(diǎn),下面是內(nèi)置的一個(gè)小例子 |
|