电竞比分网-中国电竞赛事及体育赛事平台

分享

3-數(shù)量遺傳學(xué)課程介紹-R語言基礎(chǔ)

 育種數(shù)據(jù)分析 2021-11-18

說的我悵然若失, 如果所有的東西都是無意義的, 那么什么是有意義的? 換句話說, 一定要是有意義的才可以做么? 其實(shí)我是機(jī)器人, 機(jī)械的探討一下機(jī)器人本身的意義, 然后繼續(xù)下雨澆花.

1, R語言介紹

R語言是為統(tǒng)計(jì)設(shè)計(jì)的編程語言, 不同領(lǐng)域的人寫了相關(guān)專業(yè)的包, 有很多人共同維護(hù). 軟件是免費(fèi)開源的. 許多收費(fèi)軟件比如SAS和SPSS, 價(jià)格昂貴, R是一個(gè)替代軟件.

2, 面向?qū)ο蟮恼Z言

R語言是一個(gè)交互式的語言, 它的每一個(gè)命令都是一個(gè)對(duì)象, 對(duì)象可以設(shè)置參數(shù), 具體結(jié)構(gòu)如下:

command( arg1, arg1, ... )

每一個(gè)對(duì)象都有相應(yīng)的屬性, 我們可以通過這些函數(shù)獲得對(duì)象的屬性:

class( name of object ) = tells you the type of object length( name of object ) = tells you the number of columns mode( name of object ) = numeric, list, matrix, etc.

3, 數(shù)據(jù)框

數(shù)據(jù)框是由行和列構(gòu)成的, 比較類似Excel的sheet表, 第一行經(jīng)常有行頭名(即使變量的名稱), 也可以沒有行頭名.

讀取數(shù)據(jù)可以使用read.table函數(shù), 用法如下:

mydframe = read.table("filepath/filename",header=TRUE)

4, summary匯總統(tǒng)計(jì)

summary是一個(gè)匯總統(tǒng)計(jì), 它會(huì)給出數(shù)據(jù)的基本匯總信息.比如cars是R語言默認(rèn)的數(shù)據(jù)集. 使用data導(dǎo)入數(shù)據(jù)集, 使用summary查看cars的數(shù)據(jù)匯總結(jié)果.

data(cars) carssummary(cars)     speed           dist       Min.   : 4.0   Min.   :  2.00   1st Qu.:12.0   1st Qu.: 26.00   Median :15.0   Median : 36.00   Mean   :15.4   Mean   : 42.98   3rd Qu.:19.0   3rd Qu.: 56.00   Max.   :25.0   Max.   :120.00  

5, 選擇數(shù)據(jù)框的行和列的子集

比如cars, 我想選擇1~5行

cars[1:5,]

我想選擇第二列的數(shù)據(jù)

cars[,2]

6, 改變數(shù)據(jù)框的某個(gè)值

比如我改變cars的第一行的dist值, 原來為2, 變?yōu)?

cars[1,2] =3; head(cars)

7, 做直方圖

對(duì)cars的dist做直方圖

hist(cars$dist)

也可以生成1000個(gè)隨機(jī)數(shù), 做直方圖

set.seed(123) v = rnorm(1000) hist(v)

8, 查看數(shù)據(jù)及的頻率表

比如查看speed不同速度的個(gè)數(shù), 可以使用table函數(shù)

table(cars$speed) 4  7  8  9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 2  2  1  1  3  2  4  4  4  3  2  3  4  3  5  1  1  4  1

9, 矩陣運(yùn)算

矩陣運(yùn)算有時(shí)候在分析數(shù)據(jù)時(shí)非常用于, 這里展示一些常用的函數(shù)

9.1 生成一個(gè)矩陣
ww = matrix(data=c( 50, 6, 6.5, 6, 6, 0, 6.5, 0, 6.5),nrow=3,ncol=3 ) wwwy = matrix(data=c(251.7, 28.16, 31.09), nrow=3,ncol = 1 ) wy

轉(zhuǎn)置矩陣, 使用t函數(shù)

t(ww)

diag可以提取對(duì)角矩陣, 也可以生成對(duì)角矩陣, 比如生成對(duì)角線為0 10 10的3*3對(duì)角矩陣

diag(c(0,10,10))
9.2 對(duì)矩陣求廣義逆矩陣

R語言默認(rèn)的求逆函數(shù)時(shí)solve, 要計(jì)算廣義逆矩陣, 需要用到MASS的ginv函數(shù)

library(MASS) cww = ginv(ww) cww

矩陣之間的乘法, 使用%*%函數(shù)

re = cww  %*% ww# round是保留有效數(shù)字的函數(shù)round(re,4)
9.3 矩陣的跡(trace)

矩陣的跡, 是對(duì)角線之和.

跡用于確定方差分析的自由度,并且在EM 和REML算法估算方差分量中有應(yīng)用

diag(ww)trace = sum(diag(ww)) trace
9.4  矩陣的Choleskey分解

對(duì)于正定矩陣A,可對(duì)其進(jìn)行Choleskey分解,即:A=P’P,其中P為上三角矩陣,在R中可以用函數(shù)chol()進(jìn)行Choleskey分解.

9.5 直積與直和

定義兩個(gè)函數(shù):

  • direct_sum

  • direct_product

# function for direct sum and direct productdirect_sum<- function(mat1,mat2){  r1 <- dim(mat1)[1];c1<- dim(mat1)[2]  r2 <- dim(mat2)[1];c2<- dim(mat2)[2]  rbind(cbind(mat1,matrix(0,r1,c2)),cbind(matrix(0,r2,c1),mat2)) } direct_product <- kronecker

示例:

m1 <- matrix(c(4,6,3,8),2,2) m2 <- matrix(c(1,3,2,5),2,2) m1 m2direct_sum(m1,m2) direct_product(m1,m2)

1-為什么要學(xué)習(xí)數(shù)量遺傳學(xué)

2-數(shù)量遺傳學(xué)課程介紹

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多