Colorful egg : Ctrl+F to be continued...
Day 1 | matplotlib
11.10 Lines, bars and markers
plt.plot(*arg, [fmt], data=None, **kwargs)
plt.setp(obj, *args, **kwargs)

plt.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
xticks(ticks=None, labels=None, **kwargs)
plt.legend(labels) or plt.legend(handles, labels, loc)

plt.subplot(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
# return fig, ax, ax is an Axes contains most of the figure elements
▲ax.text()
lower()?? # normalize the case of the parameter to lower case

numpy.random.seed(seed=None), called when RandomState is initialized
# 確定生成隨機(jī)數(shù)的起始位置以及隨后生成的整個(gè)隨機(jī)數(shù)組

ax.broken_barh(xranges, yranges, *, data=None, **kwargs)
# xranges, yranges: sequence of tuples(xmin, xwidth) & (ymin, ywidth)
ax.set_ylim()??? ax.set_yticks()??? ax.set_ytickabels()??? ax.grid()??? ax.annotate()

To be continued :
# ax.text()/'{}'.format(height)/ha
# fig, ax = plt.subplot()
# ax.annotate()
?????????? ----done
Day 2 | matplotlib
11.13
Day 3 | matplotlib
11.15 Eventcollection, fill area
Day 4 | matplotlib
11.16 Histograms, Gradient Bar, Interp Demo, Join styles, Dashed line
調(diào)用混合參數(shù)類型函數(shù)時(shí)需注意調(diào)用函數(shù)的次序:1) 必須的函數(shù) 2) 可選的函數(shù) 3) 過量的位置參數(shù):*args? 4)過量的關(guān)鍵字參數(shù):**kwargs
>> def add(a, b, c)
????????? return a+b+c
>>args = (2, 3)
>>kwargs = {'b': 2, 'c': 3}
>>add(1, 2, a=7) & add(a=7, *args)是會(huì)報(bào)錯(cuò)的,因?yàn)榉旁诤竺娴奈恢脜?shù)會(huì)和python根據(jù)次序規(guī)則擴(kuò)展的過量參數(shù)沖突。
zip(*iterables)
# 從參數(shù)中的多個(gè)迭代器選取元素組合成新的迭代器,返回內(nèi)部元素為元組或列表的zip對(duì)象
# *zip()是zip()的逆過程,將zip對(duì)象變成組合前的數(shù)據(jù)
>> m = [m1, m2, m3]
>> p = [p1, p2]
>> list(zip(m, p))
>> [(m1, p1), (m2, p2)]

# np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
# np.linspace is similar to np.arange, but uses a number of samples(instead of a step size)
# np.interp(x, xp, fp, left=None, right=None, period=None)
# x-array_like:x-coordinates at which to evaluate the interpolated values
# xp-1D sequence:x-coordinates of data points, increasing of period with xp=xp%period
# fp-1D sequence of float or complex:y-coordinates of data points, same length as xp
# return y-float or complex or ndarry:interpolated values, same shape as x

# np.radians(x, out=None, *, where=True)
# Convert angles from degrees to radians
# enumerate(sequence, start=0)
# >> seasons = ['A', 'B', 'C']
# >> list(enumerate(seasons))
#? ? [(0, 'A'), (1, 'B'), (2, 'C')]
# >> for i, season in enumerate(seasons):
# >>? ? print(i, season)


To be continued:
ax.imshow(X, interpolation='bicubic', cmap=plt.cm, extent=(left, right, bottom, top), alpha=1)
ax.set_aspect('auto')
distinguish:??x[1:], x[1::-1], x[1:2]
Day 5 | Python Crash Course
Python List 和 numpy array有些區(qū)別。List 元素本質(zhì)是對(duì)象,需要指針,比較浪費(fèi)內(nèi)存。而numpy提供的ndarray對(duì)象是存儲(chǔ)單一數(shù)據(jù)類型的多維數(shù)組。
type(d) 返回d的數(shù)據(jù)類型,而d.dtype() 返回?cái)?shù)組內(nèi)容的數(shù)據(jù)類型。
numpy的arange() 可以生成浮點(diǎn)數(shù),python的range() 只能生成整型。
Little Trick:
reshape(-1, 1) 生成列向量(矩陣)
數(shù)組切片按照 [開始:結(jié)尾:步長]的格式進(jìn)行--a[::-1]
數(shù)組相加不需要行列相等
>> a = np.array([1, 2, 3])
>> b = a.reshape(-1, 1)
a+b返回一個(gè)3*3的矩陣
To be continued:
for and sum()
Day 6 | Python Crash Course
Day 7 | Python Crash Course
Day 10 | Matlab Crash Course
C1 Matlab 環(huán)境
1、常用標(biāo)點(diǎn)符號(hào)的功能
,? --?要顯示計(jì)算結(jié)果的命令、輸入變量、數(shù)組行元素之間的分隔
;? -- 不顯示計(jì)算結(jié)果的命令行的結(jié)尾;不顯示結(jié)果命令、數(shù)組元素行之間的分隔
:? -- 表示一維數(shù)組的全部元素
() -- 引用數(shù)組元素,函數(shù)輸入變量列表
[] -- 構(gòu)成向量和矩陣,函數(shù)輸出列表
{} -- 構(gòu)成元胞數(shù)組
... -- 續(xù)行號(hào)
@ -- 放在函數(shù)名前形成函數(shù)句柄;放在目錄前行程用戶對(duì)象類目錄
Day 11 | R Crash Course - 3.7
C1 R的使用
R語句由函數(shù)和賦值構(gòu)成,輸入?yún)^(qū)分大小寫。
R使用 <—作為賦值符號(hào)。不推薦用=賦值,因函數(shù)條件中用=時(shí)能取值運(yùn)算,但卻沒有賦值,# 是注釋符號(hào);
# 基礎(chǔ)操作
設(shè)置默認(rèn)的鏡像:options(repos=structure(c(CRAN="YOUR FAVORITE MIRROR")))
查看版本:version
安裝Bioc下載工具:> source("https://bioconductor.org/biocLite.R")? ? > biocLite() 安裝包
# Base function
c() 以向量形式賦值;
mean(), sd(), cor() 求數(shù)據(jù)的均值、標(biāo)準(zhǔn)差和相關(guān)度;
plot() 作圖;
# Help function
help(foo) or ?foo 查看foo函數(shù)的幫助;
apropos("foo",mode="function")列出名稱含有foo的所有函數(shù);
vignette(“foo”)為主題foo顯示指定的vignette文檔;
# Workspace function
Workspace是當(dāng)前工作環(huán)境,存儲(chǔ)用戶定義的所有對(duì)象(向量,矩陣,函數(shù),數(shù)據(jù)框,列表)
getwd(), setwd() 顯示和修改當(dāng)前工作目錄;
ls() 列出當(dāng)前對(duì)象; rm(objectlist) 刪除對(duì)象;
options() 顯示或設(shè)置當(dāng)前選項(xiàng);
save.image("myfile") 保存工作空間到文件myfile(默認(rèn).RData);
save(objectlist,file="myfile") 保存指定對(duì)象到文件夾中;
load("myfile")讀取工作空間到當(dāng)前會(huì)話中;
# 輸入和輸出
腳本執(zhí)行:source("filename")?執(zhí)行路徑中的腳本文件,路徑默認(rèn)當(dāng)前目錄;
文本輸出:sink("filename") 將輸出重定向到filename中,默認(rèn)覆蓋原內(nèi)容;參數(shù)append=True可將文本追加到文件后;參數(shù)split=True可將輸出同時(shí)發(fā)送至屏幕和輸出文件。無參數(shù)sink() 僅項(xiàng)屏幕返回結(jié)果;
圖形輸出:bmp("filename")、jpeg("filename")、pdf("filename")、png("filename")、postscript("filename")、svg("filename")、wim.metafile("filename")
最后可使用dev.off() 將圖形輸出返回到終端;
# 包(Package)
(.packages())、search() ?已加載的包? ? remove.packages("packages_name", lib="lib_path") 刪除包? ? help(package="package_name") 查看包的函數(shù)
packageVersion("package_name")?查看版本
.libPaths() 顯示庫所在位置? ? library() 顯示庫中的包? ??
install.packages()、BiocManager::install("pkg_name") 下載安轉(zhuǎn)包? ? update.packages() 更新包? ? installed.packages() 列出已安裝包的信息
library() 加載包
函數(shù)名重疊時(shí),R將優(yōu)先調(diào)用最后載入的程序包。若想執(zhí)行被屏蔽的函數(shù),鍵入 包名::函數(shù)名(mt) ,如:Hmisc::describe(mt)
# 程序常見錯(cuò)誤 ▲
1、沒有注意大小寫? ? 2、沒有注意引號(hào)? ? 3、函數(shù)調(diào)用是沒加括號(hào)? ? 4、路徑使用"\\"或“/”,而不是"\"? ? 5、使用已安裝但尚未載入的包
# 批處理
批處理模式能重復(fù)、無人值守地執(zhí)行程序
對(duì)于RLinux或Mac系統(tǒng),可在終端輸入:R CMD BATCH options infile outfile
對(duì)于windows,需使用:>“chelp.s:\Program Files\R\R-3.1.0\bin\R.exe” CMD BATCH? ? > --vanilla --slave? "c:\my project\myscript.R"
C2 數(shù)據(jù)結(jié)構(gòu)
2.1 數(shù)據(jù)結(jié)構(gòu)
R的數(shù)據(jù)類型有標(biāo)量、向量、矩陣、數(shù)組、數(shù)據(jù)框和列表。
R能處理的數(shù)據(jù)類型有數(shù)值、字符、邏輯、復(fù)數(shù)和字節(jié)。名義型和有序型變量在R中被稱為因子。
# 向量
向量只能存儲(chǔ)數(shù)值、字符或者邏輯型數(shù)據(jù),且單個(gè)向量中的數(shù)據(jù)要有相同的類型。組合功能函數(shù)c()用于創(chuàng)建向量。
而向量元素的位置用 ‘[ ]’來定位。e.g.a[3], a[c(1,3)], a[2:6]都可行
# 矩陣
矩陣是一個(gè)二維數(shù)組,每個(gè)元素都有相同的類型(數(shù)值、字符或邏輯)。創(chuàng)建矩陣的一般格式為:mymatrix <— matrix(vector,? nrow, ncol, byrow=FALSE,?dimname=list(char_vector_rownames, char_vector_colnames)),一般情況下,默認(rèn)按列填充。
# 數(shù)組
矩陣可通過 myarray <— array(vector, dimensions, dimnames)創(chuàng)建,dimnames是可選的各維度名稱標(biāo)簽列表。
# 數(shù)據(jù)框
數(shù)據(jù)框中不同的列可以用不同的數(shù)據(jù)類型,常用 mydata <— data.frame(col1, col2, col3, ..., row.names=case_identifier_name),實(shí)例標(biāo)識(shí)符(case_identifier)用于指定各類實(shí)例的名稱。
選取數(shù)據(jù)框中的元素可用 '$' 完成,也可用函數(shù) attach()、with()?簡化書寫。
e.g.1 >plot(mtcars$mpg, mtcars$disp)
e.g.2 >attach(mtcars)? >plot(mpg, disp)? >detach(mtcars) --attach() 將數(shù)據(jù)框添加到R的搜索路徑中,R遇到變量名時(shí)會(huì)檢查搜索路徑中的數(shù)據(jù)框。適用于分析單一數(shù)據(jù)框且無同名對(duì)象的情況。注意養(yǎng)成調(diào)用完用detach() 從路徑中移除的習(xí)慣。
e.g.3 >with(mtcars, {>stats <- summary(mpg)? >stats})
with() 中有多條語句需用 ‘{ }’包起來,而且語句中的賦值只生效于括號(hào)內(nèi),若要在括號(hào)外也生效,則要用特殊賦值符 '<<—' 替代普通賦值符 '<—'。通常來說,with()比attach()更好用。
# 因子
函數(shù)factor() 以整數(shù)向量存儲(chǔ)類別值。對(duì)于名義型變量:
e.g. >diabetes <— c("Type1", "Type2")? ? >diabetes <— factor(diabetes)
對(duì)于有序變量,函數(shù)按默認(rèn)字母順序排序,這一般不準(zhǔn)確,需要指定 “l(fā)evels”選項(xiàng)排序:
e.g.>?status <— c("Poor", "Improved", "Excellent")? ? > status?>— factor(status, order=TRUE, levels=c("Poor", "Improved", "Excellent")
str(object)可提供對(duì)象的結(jié)構(gòu); summary()顯示各變量的統(tǒng)計(jì)信息。
*# 列表
列表是一些對(duì)象的有序組合,可用 list() 創(chuàng)建:
e.g. >?mylist <—?list(object1, object2, ...)? ? > mylist <— list(name1=object1, name2=object2, ...)
list的調(diào)用待理
# R的一些特性 ▲
1、對(duì)象名稱中的 '.'沒有特殊含義,‘$' 卻有其他語言中句點(diǎn)的含義,指示數(shù)據(jù)框或列表中的某些成分; 2、R不提供注釋塊的功能,要么逐行#,要么用 if(FALSE){...}注釋;? 3、賦值給不存在元素時(shí),R會(huì)自動(dòng)擴(kuò)展數(shù)據(jù)結(jié)構(gòu);? 4、R中沒有標(biāo)量,以單元素向量出現(xiàn);? 5、R的下標(biāo)從 ‘1’開始;? 6、R無法聲明變量,只在首次賦值時(shí)生成。
2.2 數(shù)據(jù)輸入
可供R導(dǎo)入的數(shù)據(jù)源:
1、統(tǒng)計(jì)軟件:SAS SPSS Stata? ? 2、文本文件:ASCII XML Web抓取? ? 3、數(shù)據(jù)庫:SQL MySQL Oracle Access? ? 4、其他:Excel netCFD HDF5
# 小數(shù)據(jù)導(dǎo)入(鍵盤輸入)
1、創(chuàng)建數(shù)據(jù)框,然后用文本編輯器輸入:
e.g.> mydata <— data.frame(age=numeric(0), gender=character(0))? ? > mydata <—edit(mydata)
最后一步一定要賦回對(duì)象本身,因?yàn)榫幾g器只在副本編輯,關(guān)閉后不會(huì)保存!
2、直接在程序中嵌入數(shù)據(jù)集:
e.g. > mydatatxt <— ”\n age gender\n 25 m\n30 f\n..."? ? > mydata <— read.table(header=TRUE, text=mydatatxt)
# 數(shù)據(jù)集標(biāo)注
R 處理變量標(biāo)簽的能力有限,一種方法是將變量標(biāo)簽作為變量名。e.g. > names(data)[2] <— "label_name"
值標(biāo)簽可用 factor()為類別型變量創(chuàng)建,levels?代表變量實(shí)際值,labels?代表值標(biāo)簽。 e.g. > data$variable <— factor(data$variable, levels=c(origin_value), labels=c(label_value))
# 對(duì)象的實(shí)用函數(shù)
length() 對(duì)象中元素/變量的數(shù)量? ? dim() 維度? ? str() 結(jié)構(gòu)? ? class() 類型? ? mode() 對(duì)象的數(shù)據(jù)類型? ? names() 各成分名稱? ? ?c(object,?object,..) 合并向量,會(huì)自動(dòng)統(tǒng)一數(shù)據(jù)類型? ? cbind() 按列合并? ? rbind()? ? head() 顯示前六行? ? tail() 顯示后六行? ? rm() (rm(list=ls())可以刪除除 ’.‘開頭的所有對(duì)象)? ??newobject <— edit(object)、fix(object) 編輯對(duì)象
C3 初階圖形
通過在開啟圖形設(shè)備和關(guān)閉圖形設(shè)備語句之間放入繪圖語句即可保存相關(guān)類型的圖形。另,創(chuàng)建多窗口圖形需要打開多個(gè)圖形窗口,命令集如下:
dev.new() 創(chuàng)建新窗口? ?dev.next()窗口切換? ? dev.prev()? ? dev.cur() 當(dāng)前窗口序號(hào)? ?dev.off() 關(guān)閉當(dāng)前窗口? ?dev.set() 窗口跳轉(zhuǎn)? ?graphics.off() 關(guān)閉所有窗口
# 圖形參數(shù)
--lty(1-6) 線類型? --pch(1-25) 點(diǎn)類型? --cex 點(diǎn)大小? --lwd 線寬? --type("p", "l", "b", "h", "s", "S")??
可用par() 來設(shè)定參數(shù)再繪圖(設(shè)置所有繪圖), 也可以直接在plot() 里添加屬性(設(shè)置單一繪圖)。用par()之前一般先用 opar <— par(no.readonly=TRUE) 保存默認(rèn)設(shè)置。
# 顏色plot(dose, dt
rainbow()? heat.colors()? terrain.colors9)? topo.colors()? ?cm.colors()? RColorBrewer()? ?gray()
# 文本屬性
-cex 默認(rèn)大小倍數(shù)? ? -cex.axis 刻度文字大小? ? -cex.lab? ? -cex.sub? ? -cex.main? ? -font 字體樣式(1-5)? ? -family 字體族? ? -windowsFont() Windows中的字體映射
# 圖形尺寸
--pin() 以英寸表示的圖形尺寸(寬和高)? ? --mai() 英寸單位的邊界(下、左、上、右)? ? --mar() 英分單位的邊界,默認(rèn)?c(5,4,4,2)+0.1
*# 基礎(chǔ)函數(shù)
line() 添加圖形? ??title() 添加標(biāo)題
text(-location 位置,為x,y坐標(biāo)? -"text"? -pos 方位,1下左上右,可加offset偏移量 ) 添加文本? ??
mtext(-"text"? -side 放置文本的邊? -line 負(fù)內(nèi)正外移動(dòng)文本) 在邊界添加文本? ??
axis(-side(1下2左3上4右)? -at 數(shù)值向量,刻度線位置? -las 標(biāo)簽0平行或2垂直坐標(biāo)軸? -tck 刻度線長度,負(fù)值圖外,正值圖內(nèi),1繪制網(wǎng)絡(luò)線,默認(rèn)?-0.01, -ylim 刻度范圍)? ?添加坐標(biāo)軸? ??
abline(h=yvalues, v=xvalues) 添加參考線? ??
minor.tick(-nx x刻度劃分?jǐn)?shù) -ny -tick.ratio 刻度線大小比例) 添加次要刻度線(需要導(dǎo)入Hmisc庫)? ?
legend(location, title, legendset) 添加圖例
*某些高級(jí)繪圖默認(rèn)包含標(biāo)題、標(biāo)簽和坐標(biāo),可用 ann=FALSE 移除標(biāo)題和標(biāo)簽;用 axes=FALSE 移除坐標(biāo)軸(刻度、坐標(biāo)、以及框架線),用 yaxt="n" 移除坐標(biāo)軸的刻度。
# 多圖組合
par(-mfrow=c(nrows, ncols)?按行填充? -mfcol 按列填充)
或 layout(mat, widths, heights) 定義多圖布局
e.g. layout(matrix(c(1,1,2,3), 2, 2, byrow=TRUE), widths=c(3, 1), heights=c(1, 2))? 劃分了按行排列,圖一位于一行,圖二三位于二行且列寬為3:1,行高為1:2的圖組
# 布局微調(diào)
可用par(fig=c(x1, x2, y1, y2)) 來具體設(shè)定子圖的空間位置,繪圖區(qū)域右左下角(0,0)到右上角(1,1)的區(qū)域可用。
同時(shí),-fig 參數(shù)默認(rèn)新建一幅圖像,所以添加圖前先設(shè)定 par(new=TRUE)
C4 數(shù)據(jù)處理
# 添加新變量
_data_ <— transform(_data_, argu=value)?添加新變量
算術(shù)運(yùn)算符: x^y、x**y 求冪? ? x%%y 求余? ? x%/%y 整數(shù)除法
邏輯運(yùn)算符: x==y 嚴(yán)格等于,浮點(diǎn)數(shù)比較時(shí)慎用? ? isTRUE(x)
# 變量重編碼
within() 與with() 類似,不同的是,within()能修改數(shù)據(jù)框。
語句 variable[condition] <— expression 能按條件執(zhí)行賦值
重編碼函數(shù)有 car包的recode()、doBy包的recodevar()
# 變量的重命名
fix(_data_) 編輯數(shù)據(jù)? ? names(_data_) 賦值方法重命名? ? plyr包的rename() 函數(shù)
e.g. _data_ <— rename(_data_, c(oldname="newname", ...))
# 缺失值
缺失值為NA (Not Available) ,與SAS等不同,R數(shù)值型和字符型的缺失都為NA,可用 is.na()判別,將返回同等大小邏輯對(duì)象。要注意兩點(diǎn):
1、NA不可比較,value == NA 不能識(shí)別NA,只能用函數(shù)識(shí)別。
2、R中無限和不可能出現(xiàn)的數(shù)值不會(huì)被標(biāo)記為NA,他們對(duì)應(yīng)的是Inf、-Inf(如5/0)和NAN(not a number, 如sin(Inf))。分別可用is.infinite()和 is.nan()識(shí)別。
含缺失值的計(jì)算結(jié)果也是缺失值。分析前需排除缺失值,一般數(shù)值函數(shù)都有 na.rm=TRUE 選項(xiàng)刪除缺失值,以使用剩余值計(jì)算。 另也可以用 na.omit()刪除缺失數(shù)據(jù)的行。
# 日期值
日期值是R 中的一種數(shù)據(jù)格式。as.Date(date, "input_format") 用于將字符串日期值轉(zhuǎn)化為日期變量,格式有 %d, %a, %A, %m, %b, %B, %y, %Y。日期的默認(rèn)格式是%Y-%m-%d 。
指定格式的日期可以用 format(_data_, format="output_format")獲得。
此外,日期變量的有關(guān)函數(shù)還有Sys.Date() 當(dāng)天日期, date() 當(dāng)前日期時(shí)間,difftime() 時(shí)間差。
最后,日期變量也能通過 as.character(_data_)?轉(zhuǎn)化為字符型變量。
# 數(shù)據(jù)排序
order() 對(duì)排序變量排序后輸出一個(gè)排序向量。
e.g. order(-_data_) 按倒序排序。?
# 數(shù)據(jù)集的合并
merge(dataframeA, dataframeB, by="ID") 按照內(nèi)聯(lián)結(jié)ID 進(jìn)行列合并? ? cbind(A, B) 直接合并列
rbind(A, B) 直接合并行,要有相同的變量,否則要1、刪除A 的多余變量 或 2、給B 追加缺失值
# 剔除變量
e.g. > _index_? <— names(_data_) %in% c(_rm_list_)? ? > newdata <— _data_[!_index_]
e.g. > newdata <— _data_[c(-c1, -c2,...)] 行列下標(biāo)為負(fù)數(shù)意味著剔除
e.g. > _data_$v1 <- NULL? NULL是未定義,相當(dāng)于刪除變量
# 選取子集
newdata <— subset(_data_, condition, select=c(v1, v2, ...))
# 采樣
mysample <— _data_[sample(1:nrow(_data_), _sampling_num_, replacement=FALSE) 有放回采樣
C5 高級(jí)數(shù)據(jù)管理
5.1 數(shù)字字符函數(shù)
# 數(shù)學(xué)函數(shù)
ceiling(x) 大于x的最小整數(shù)? ? floor(x) 小于x的最大整數(shù)? ? trunc(x) 向0方向截取整數(shù)部分? ? round(x, digits=n) 指定小數(shù)位? ? signif(x, digits=n) 指定有效數(shù)位? ? log(x, base=n)? ? log10(x)
sd(x) 標(biāo)準(zhǔn)差? ? var(x) 方差? ? mad(x) 絕對(duì)中位差? ? quantile(x, probs) 求probs之間的分位點(diǎn)? ? diff(x, lag=n) 滯后n項(xiàng)的差分? ? scale(x, center=TRUE, scale=TRUE) 按列進(jìn)行中心化或者標(biāo)準(zhǔn)化
▲# 概率函數(shù)
[dpqr]_distribution_abbreviation()
d(density) = 密度函數(shù)? ? p(distribution) = 分布函數(shù)? ? q(quantile) = 分位數(shù)函數(shù)? ? r(random) = 生成水技術(shù)
distribution_abbreviation:
beta -Beta分布? ? binom -二項(xiàng)分布? ? cauchy -柯西分布? ? chisq -卡方分布? ? exp -指數(shù)分布? ? f -F分布? ? gamma -伽馬分布? ? geom -幾何分布? ? hyper -超幾何分布? ? lnorm -對(duì)數(shù)正態(tài)分布? ? logis -Logistic分布? ? multinom -多項(xiàng)分布? ? nbinom -負(fù)二項(xiàng)分布? ? norm 正態(tài)分布? ? pois -泊松分布? ? signrank -Wilcoxon符號(hào)秩分布? ? t -t分布? ? unif -均勻分布? ? weibull -Weibull分布? ? wilcox -Wilcoxon秩和分布
# 隨機(jī)種子
每次生成隨機(jī)數(shù)會(huì)有一個(gè)不同的種子,以產(chǎn)生不同的結(jié)果??梢杂胹et.seed() 指定種子,以創(chuàng)建可共享的示例。
# 生成多元正態(tài)數(shù)據(jù)
MASS包的 mvrnorm() 函數(shù),mvrnorm(n, mean, sigma)
*▲# 字符處理函數(shù)
nchar(x)? ? substr(x, start, stop)? ??
grep(pattern, x, ignore.case=FALSE, fixed=FALSE) -fixed=FALSE,則?pattern為一正則表達(dá)式,否則為一文本字串符;另注意,需要用到反斜杠"\"的正則表達(dá)式(如"\s"表示空格符)寫法應(yīng)為"\\s",因?yàn)?\"為 R的轉(zhuǎn)義字符
sub(pattern, replacement, x, ignore.case=FALSE, fixed=FALSE) 提取或替換字符向量的字串? ??
strsplit(x, split, fixed=FALSE) 在split?處分割字符串? ??
paste(x1, x2, seq=" ") 連接字符串,分隔符為seq? ??
toupper(x) 大寫轉(zhuǎn)換? ? tolower(x)
# 其他處理函數(shù)
length() 求對(duì)象中的元素?cái)?shù)量? ? seq(from, to, by) 生成一個(gè)等間隔的序列? ? ?rep(x, n) 重復(fù)?x?n次 ? ?cut(x, breaks, labels=NULL, orderd_result=F) 若break 為數(shù)字,將連續(xù)型向量x 等間隔地(左開右閉)分割為 n個(gè)水平因子;若break 為向量, 則以該元素為分割點(diǎn)分割? ? pretty(x, n) 將 x?等分為n個(gè)等間距區(qū)間? ? cat(..., file="_filename", append=F) 連接對(duì)象(自動(dòng)以空格間隔)并輸出到屏幕或者文件中
table(var1, var2, ...) 使用N個(gè)類別型變量創(chuàng)建一個(gè)N維列聯(lián)表
# 矩陣函數(shù)
apply(x, MARGIN, FUN) 按區(qū)域運(yùn)行函數(shù)? ??
5.2 語法結(jié)構(gòu)
循環(huán)
for (var in seq) statement? ? ? ? while (cond) statement? ? ? ??
條件
if (cond) statement1 else statement2
ifelse(cond, state,ent1, statement2)
switch(expr, ...)
e.g. >feelings <— c("sad", "afraid")? ?> for (i in feelings) print(switch(i , happy="I am glad",...))
函數(shù)
function_name <— function(arg1, arg2, ...) { statement; return(obj) }
▲調(diào)用自編寫函數(shù)時(shí),用 source("function_name")?載入
# 整合與重構(gòu)(reshape2包)
t() 倒置
*aggregate(data, by=list(name1=var1, name2=var2,...,), FUN) 整合數(shù)據(jù),但其函數(shù)只能調(diào)用單返回值的函數(shù)? ? by(data, group, FUN) 則可以調(diào)用任何函數(shù)? ? ?doBy包的summaryBy(formula, data=dataframe, FUN)也能分組計(jì)算概述統(tǒng)計(jì)量
melt() 數(shù)據(jù)分解? ? dcast() 重構(gòu)? ??
C6 基本圖形
# 條形圖
barplot(height, horiz=F, besides=F)? ? plot() 也可以根據(jù)因子變量快速創(chuàng)建一個(gè)條形圖? ? spine()? ? pie()? ? ?pie3D()? ? Plotrix包fan.plot()? ? hist()? ? rug()? ? density()? ? sm包 sm.density.compare(x, factor) 疊加核密度圖? ??
boxplot(formula, data=dataframe, notch= ,) - formula 項(xiàng)有y~A、y~A*B 兩種寫法,表示類別變量A對(duì)于數(shù)值變量y生成的箱型圖。盒型范圍±1.5IQR以外的值以離群點(diǎn)表示? ? ? ??
vioplot(x1, x2, ..., names, col) 小提琴圖? ? dotchart(x, labels, groups) 按標(biāo)簽畫散點(diǎn)圖,且標(biāo)簽按groups 變量進(jìn)行分組
C7 基本統(tǒng)計(jì)分析
# 描述性統(tǒng)計(jì)分析
discribe() 返回?cái)?shù)據(jù)整體的基本信息(樣本、特征數(shù)量,缺失值、不同值等等),類似的函數(shù)還有pastecs 包的stat.desc() 和psych 包的describe()? ??
# 頻數(shù)表和列聯(lián)表
table(var1, var2,...) 根據(jù)因子創(chuàng)建列聯(lián)表,默認(rèn)忽略缺失值? ? xtabs(formula, data) 根據(jù)公式(-formula: y~A+B,y以AB的交叉分類統(tǒng)計(jì)頻數(shù))創(chuàng)建N維列聯(lián)表? ? prop.table(table, margins) 依邊際將列表表示為分?jǐn)?shù)形式? ? margin.table(table, margins) 依邊際計(jì)算列表?xiàng)l目和? ? addmargins(table, margins) 給列表添加邊際和? ? ftable(table) 創(chuàng)建平鋪式列聯(lián)表