5.1 一個(gè)數(shù)據(jù)處理難題
5.2 數(shù)值和字符處理函數(shù)
5.2.1 數(shù)學(xué)函數(shù)
數(shù)學(xué)函數(shù)
函數(shù) | 描述 |
---|---|
abs(x) | 絕對(duì)值abs(-4)返回值為4 |
sqrt(x) | 平方根sqrt(25)返回值為5 |
ceiling(x) | 不小于x的最小整數(shù) |
floor(x) | 不大于x的最大整數(shù) |
trunc(x) | 向0的方向截取的x中的整數(shù)部分 |
round(x, digits=n) | 將x舍入為指定位的小數(shù) |
signif(x, digits=n) | 將x舍入為指定的有效數(shù)字位數(shù) |
cos(x),sin(x),tan(x) | 余弦顽铸、正弦和正切 |
acos(x),asin(x),atan(x) | 反余弦趟佃、反正弦和反正切 |
cosh(x),sinh(x),tanh(x) | 雙曲余弦、雙曲正弦和雙曲正切 |
acosh(x),asinh(x),atanh(x) | 反雙曲余弦、反雙曲正弦和反雙曲正切 |
log(x, base=n) | 對(duì)x取以n為底的對(duì)數(shù) |
log10(x) | log(x)為自然對(duì)數(shù)疫赎,log10(x)為常用對(duì)數(shù) |
exp(x) | 指數(shù)函數(shù) |
5.2.2 統(tǒng)計(jì)函數(shù)
統(tǒng)計(jì)函數(shù)
函數(shù) | 描述 |
---|---|
mean(x) | 平均數(shù) |
median(x) | 中位數(shù) |
sd(x) | 標(biāo)準(zhǔn)差 |
var(x) | 方差 |
mad(x) | 絕對(duì)中位差 |
quantile(x,probs) | 求分位數(shù),probs[0,1] |
range(x) | 求值域 |
sum(x) | 求和 |
diff(x,lag=n) | 滯后差分 |
min(x) | 求最小值 |
max(x) | 求最大值 |
scale(x, center=TRUE, scale=TRUE) | 為數(shù)據(jù)對(duì)象x按列進(jìn)行中心化或標(biāo)準(zhǔn)化 |
5.2.3 概率函數(shù)
d = density 密度函數(shù)
p = probabilty 分布函數(shù)
q = quatile function 分位數(shù)函數(shù)
r = random 生成隨機(jī)數(shù)
概率分布
分布名稱 | 縮寫 | 分布名稱 | 縮寫 |
---|---|---|---|
Beta分布 | beta | Logistic分布 | logis |
二項(xiàng)分布 | binom | 多項(xiàng)分布 | multinom |
柯西分布 | cauchy | 負(fù)二項(xiàng)分布 | nbinom |
卡方分布 | chisq | 正態(tài)分布 | norm |
指數(shù)分布 | exp | 泊松分布 | pois |
F分布 | f | Wilcoxon符號(hào)秩分布 | signrank |
Gamma分布 | gamma | t分布 | t |
幾何分布 | geom | 均勻分布 | unif |
超幾何分布 | hyper | Weibull分布 | weibull |
對(duì)數(shù)正態(tài)分布 | lnorm | Wilcoxon秩和分布 | wilcox |
5.2.4 字符處理函數(shù)
字符處理函數(shù)
函數(shù) | 描述 |
---|---|
nchar(x) | 計(jì)算x中的字符數(shù)量 |
substr(x, start, stop) | 提取或替換一個(gè)字符向量中的子串 |
grep(pattern, x, ignore.case=FALSE, fixed=FALSE) | 在x中搜索某種模式,pattern為正則表達(dá)式 |
sub(pattern, replacement,x, ignore.case=FALSE, fixed=FALSE) | 在x中搜索pattern演怎,并以replacement將其替換。 |
strsplit(x, split, fixed=FALSE) | 在split處分割字符向量x中的元素 |
paste(..., sep=" ") | 連接字符串避乏,分隔符為sep |
toupper(x) | 大寫轉(zhuǎn)換 |
tolower(x) | 小寫轉(zhuǎn)換 |
5.2.5 其他實(shí)用函數(shù)
函數(shù) | 描述 |
---|---|
length(x) | 對(duì)象x的長(zhǎng)度 |
seq(from, to, by) | 生成一個(gè)序列 |
rep(x,n) | 將x重復(fù)n次 |
cut(x,n) | 將連續(xù)型變量x分割為有著n個(gè)水平的因子 |
pretty(x,n) | 創(chuàng)建美觀的分割點(diǎn)爷耀,繪圖中常用 |
cat(... , file ="myfile", append=FALSE) | 連接...中的對(duì)象,并將其輸出到屏幕上或文件中 |
5.2.6 將函數(shù)應(yīng)用于矩陣和數(shù)據(jù)框
apply()函數(shù):可將一個(gè)任意函數(shù)“應(yīng)用”到矩陣拍皮、數(shù)組歹叮、數(shù)據(jù)框的任何維度上。
使用格式為:apply(x, MARGIN, FUN, ...)
x=數(shù)據(jù)對(duì)象铆帽,MARGIN是維度下標(biāo)咆耿,F(xiàn)UN是由指定的函數(shù)
5.3 數(shù)據(jù)處理難題的一套解決方案
5.4 控制流
正常情況,R程序中的語(yǔ)句都是從上至下順序執(zhí)行的锄贼,但有時(shí)想重復(fù)執(zhí)行某些語(yǔ)句---控制流發(fā)揮作用
- 語(yǔ)句statement: 是一條單獨(dú)的R語(yǔ)句或一組復(fù)合語(yǔ)句
- 條件cond:是一條最終被解析為TRUE or FALSE的表達(dá)式
- 表達(dá)式expr:是一條數(shù)值或字符串的求值語(yǔ)句
- 序列seq:是一個(gè)數(shù)值或字符串序列
5.4.1 重復(fù)和循環(huán)
循環(huán)結(jié)構(gòu)重復(fù)地執(zhí)行一個(gè)或一系列語(yǔ)句票灰,知道某個(gè)條件不為真為止。
- for結(jié)構(gòu):for循環(huán)重復(fù)地執(zhí)行一個(gè)語(yǔ)句宅荤,直到某個(gè)變量的值不再包含在序列seq中為止。for (var in seq) statement
eg. for (1 in 10) print ("Hello") - while結(jié)構(gòu): while循環(huán)重復(fù)地執(zhí)行一個(gè)語(yǔ)句浸策,直達(dá)條件不為真為止冯键。while (cond) statement
eg. i <- 10
while (i>0) {print ("Hello"); i <- i-1)
5.4.2 條件執(zhí)行
- if-else結(jié)構(gòu)
if (cond) statement
if (cond) statement1 else statement2 - ifelse結(jié)構(gòu)
ifelse (cond, statement1, statement2) - switch結(jié)構(gòu)
switch(expr, ...)
5.5 用戶自編函數(shù)
myfunction <- function (arg1, arg2, ...) {
statements
return(object)
}
5.6 整合與重構(gòu)
5.6.1 轉(zhuǎn)置 t()
5.6.2 整合數(shù)據(jù) aggregate(x, by, FUN)
5.6.3 reshape2包
reshape2包是一套重構(gòu)和整合數(shù)據(jù)集的絕妙的萬能工具。
數(shù)據(jù)融合melt
數(shù)據(jù)重鑄cast