打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
3-数量遗传学课程介绍-R语言基础

说的我怅然若失, 如果所有的东西都是无意义的, 那么什么是有意义的? 换句话说, 一定要是有意义的才可以做么? 其实我是机器人, 机械的探讨一下机器人本身的意义, 然后继续下雨浇花.

1, R语言介绍

R语言是为统计设计的编程语言, 不同领域的人写了相关专业的包, 有很多人共同维护. 软件是免费开源的. 许多收费软件比如SAS和SPSS, 价格昂贵, R是一个替代软件.

2, 面向对象的语言

R语言是一个交互式的语言, 它的每一个命令都是一个对象, 对象可以设置参数, 具体结构如下:

command( arg1, arg1, ... )

每一个对象都有相应的属性, 我们可以通过这些函数获得对象的属性:

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, 数据框

数据框是由行和列构成的, 比较类似Excel的sheet表, 第一行经常有行头名(即使变量的名称), 也可以没有行头名.

读取数据可以使用read.table函数, 用法如下:

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

4, summary汇总统计

summary是一个汇总统计, 它会给出数据的基本汇总信息.比如cars是R语言默认的数据集. 使用data导入数据集, 使用summary查看cars的数据汇总结果.

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, 选择数据框的行和列的子集

比如cars, 我想选择1~5行

cars[1:5,]

我想选择第二列的数据

cars[,2]

6, 改变数据框的某个值

比如我改变cars的第一行的dist值, 原来为2, 变为3

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

7, 做直方图

对cars的dist做直方图

hist(cars$dist)

也可以生成1000个随机数, 做直方图

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

8, 查看数据及的频率表

比如查看speed不同速度的个数, 可以使用table函数

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, 矩阵运算

矩阵运算有时候在分析数据时非常用于, 这里展示一些常用的函数

9.1 生成一个矩阵
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

转置矩阵, 使用t函数

t(ww)

diag可以提取对角矩阵, 也可以生成对角矩阵, 比如生成对角线为0 10 10的3*3对角矩阵

diag(c(0,10,10))
9.2 对矩阵求广义逆矩阵

R语言默认的求逆函数时solve, 要计算广义逆矩阵, 需要用到MASS的ginv函数

library(MASS) cww = ginv(ww) cww

矩阵之间的乘法, 使用%*%函数

re = cww  %*% ww# round是保留有效数字的函数round(re,4)
9.3 矩阵的迹(trace)

矩阵的迹, 是对角线之和.

迹用于确定方差分析的自由度,并且在EM 和REML算法估算方差分量中有应用

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

对于正定矩阵A,可对其进行Choleskey分解,即:A=P’P,其中P为上三角矩阵,在R中可以用函数chol()进行Choleskey分解.

9.5 直积与直和

定义两个函数:

  • 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-为什么要学习数量遗传学

2-数量遗传学课程介绍

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Opencv c接口与c++接口
将全矩阵转化为上三角或下三角矩阵
第十一课 矩阵 |【小白学R系列】
R语言 | 第四讲:R语言数据类型及结构
R语言从入门到精通:Day3
【R语言学习5】R语言常用数据结构解读
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服