2018's One Code Per Day

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 Listnumpy 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)表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容