對一般數據進行運算的常用函數:
數學函數:
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)
4、logb(a, b) #以b為底的對數,省略b表示自然對數
log() #自然對數
log10() #以10為底的常用對數
例:logb(8, 2)
log(8); logb(8)
log10(100); logb(100, 10)
5、sqrt() #平方根
exp() #指數
6、sin() #正弦
cos() #余弦
tan() #正切
asin() #反正弦
acos() #反余弦
atan() #反正切
sinh() #雙曲正弦
tanh() #雙曲正切
7、nchar() #字符長度
例: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、計算
+, -, *, /, ^, %%, %/%:四則運算ceiling,floor,round,signif,trunc,zapsmall:舍入max,min,pmax,pmin:最大 最小值 range:最大值和最小值sum,prod:向量元素和,積cumsum,cumprod,cummax,cummin:累加、累乘sort:排序 approx和approx fun:插值diff:差分sign:符號函數
------------------------------------------------------------------------------------------------------------------------------------------
11、自己寫函數程序流程
一、控制結構
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:列出數據集
-------------------------------------------------------------------------------------------------------------------------------------------
12、統計計算函數
一、統計分布
每一種分布有四個函數: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:線性模型、廣義線性模型、方差分析
--------------------------------------------------------------------------------------------------------------------------------------------
13、其他
(1)rm(list = ls())
#清空控制台所有向量
(2)setwd("D:/ziliao/zhuanye/R bear/R code")
#設置工作目錄
(3)library(Biostrings)
#調用程序包
(4)aa <- AAString("LANDEECQW")
#將一個字符向量轉化成氨基酸序列aa
(5)typeof(aa)
#查看aa類型
[1] "S4"
#aa為S4方法類型
(6)write(aa,"chuana.txt")
#嘗試將aa輸出到文件chuana.txt中
(7)aa=as.character(aa)
#將aa轉化為字符向量
(8)write(aa,"chuana.txt")
#再次輸出
------------------------------------------------------------------------------------------------------------------------------------
奇葩函數
看別人的代碼會遇到一些奇葩的函數,一般的教程上很少提到,但卻有很好的用處,這類函數基本上分布在base以及utils包中,下面將它們略為歸納一下,以備后用。
1 文件執行:
在用R生成一個PDF文檔后,如果想去打開它,你可能會在文件夾里找到再點開。再或者我們想調用系統中的其它程序來做點事情,可能要打開cmd敲點命令。實際上這都可以在R內部完成。舉例來說用pandoc轉換na.md成docx再打開它。
system('pandoc d:\\rspace\\na.md -o d:\\rspace\\na.docx')
shell.exec('d:\\rspace\\na.docx')
2 網絡瀏覽:
browseURL:瀏覽某個指定的網頁
download.file:下載網絡文件到本地
3 文件操作
dir.create:新建一個文件夾
list.dirs:顯示目錄下的文件夾
list.files:顯示目錄下的文檔
file.create:文檔創建
file.exists:判斷文檔是否存在
file.remove:文檔刪除
file.rename:重命名
file.append:文檔添加
file.copy:文檔復制
file.symlink(from, to)
file.show:顯示文檔內容
file.info:顯示文檔信息
file.edit:編輯文檔
zip: 壓縮文件
unzip: 解壓縮文件
4 運算進度條
在一個大循環運算時,如果可以看到目前的進度是比較方便的,txtProgressBar和setTxtProgressBar函數可以幫助做到這一點,下面是內置的一個小例子
