生信自学论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: TCGA GEO R
楼主: 苹果apple

R语言21天学习笔记

  [复制链接]

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:24:08 | 显示全部楼层
生信自学网课程
第十一天:矩阵
  1. x=sample(1:100,12);x #抽样

  2. all(x>0);all(x!=0);any(x>0);(1:10)[x>0] #逻辑符号的应用

  3. diff(x) #差分

  4. diff(x,lag=2) #差分

  5. x=matrix(1:20,4,5);x #矩阵的构造

  6. x=matrix(1:20,4,5,byrow=T);x #矩阵的构造,按行排列

  7. t(x) #矩阵转置

  8. x=matrix(sample(1:100,20),4,5) #

  9. 2*x #

  10. x+5 #

  11. y=matrix(sample(1:100,20),5,4) #

  12. x+t(y) #矩阵之间相加

  13. (z=x%*%y) #矩阵相乘

  14. z1=solve(z) # solve(a,b)可以解ax=b方程

  15. round(z1%*%z,14) #四舍五入

  16. b=solve(z,1:4);b #解联立方程
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:24:50 | 显示全部楼层
生信自学网课程
第十二天:矩阵2
  1. nrow(x),ncol(x),dim(x) #行列数目

  2. x=matrix(rnorm(24),4,6) #

  3. x[c(2,1),] #第2和第1行

  4. x[,c(1,3)] #第1和第3列

  5. x[2,1] #第【2,1】元素

  6. x[x[,1]>0,1] #第1列大于0的元素

  7. sum(x[,1]>0) #第1列大于0的元素的个数

  8. sum(x[,1]<> #第1列不大于0的元素的个数

  9. x[,-c(1,3)] #没有第1和3列的x

  10. diag(x) #x的对角线元素

  11. diag(1:5) #以1:5为对角线,其它元素为0的对角线矩阵

  12. diag(5) #5维单位矩阵

  13. x[-2,-c(1,3)] #没有第2行、第1,3列的x

  14. x[x[,1]>0&x[,3]<> #第1列大于0且第3列小于等于1的第1列元素

  15. x[x[,2]>0|x[,1]<> #第2列大于0或者第1列小于3的第1列元素

  16. x[!x[,2]<> #第1列中 相应于第2列中 >=3的元素

  17. apply(x,1,mean) #对行(第一维)求均值

  18. apply(x,2,sum) #对列(第二维)求和

  19. x=matrix(rnorm(24),4,6) #

  20. x[lower.tri(x)]=0;x #得到上三角阵

  21. x[upper.tri(x)]=0 #得到下三角阵
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:25:40 | 显示全部楼层
生信自学网课程
第十三天:高维数组
  1. x=array(runif(24),c(4,3,2)) #用24个服从均匀分布的样本点构造4乘3乘2的3维数组

  2. is.matrix(x)

  3. dim(x) #得到维数

  4. is.matrix(x[1,,])#部分三维数组是矩阵

  5. x=array(1:24,c(4,3,2))

  6. x[c(1,3),,] #

  7. apply(x,1,mean) #可以对部分维做求均值运算

  8. apply(x,1:2,sum) #可以对部分维数做求和运算

  9. apply(x,c(1,3),prob) #对部分维数求乘积
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:26:24 | 显示全部楼层
生信自学网课程
第十四天:矩阵与向量之间的运算
  1. x=matrix(1:20,5,4) #5乘4矩阵

  2. sweep(x,1,1:5,'*') #把向量1:5的每个元素乘到每一行

  3. sweep(x,2,1:4,'+') #把向量1:4的每个元素加到每一列

  4. x*1:5 #把向量1:5的每个元素乘到每一行

  5. (x=matrix(sample(1:100,24),6,4));(x1=scale(x)) #

  6. (x2=scale(x,scale=F)) #

  7. (x3=scale(x,center=F)) #

  8. round(apply(x1,2,mean),14) #

  9. apply(x1,2,sd) #

  10. round(apply(x2,2,mean),14);apply(x2,2,sd) #

  11. round(apply(x3,2,mean),14);apply(x3,2,sd) #
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:28:48 | 显示全部楼层
生信自学网课程
第十五天:缺失值 数据合并
  1. airquality #有缺失值(NA)的R自带数据

  2. complete.cases(airquality) #判断每行有没有缺失值

  3. which(complete.cases(airquality)==F) #有缺失值的行号

  4. sum(complete.cases(airquality)) #完整观测值的行数

  5. na.omit(airquality) #删去缺失值的数据

  6. #附加,横或竖合并数据:append,cbind,rbind

  7. x=1:10;x[12]=3  #

  8. (x1=append(x,77,after=5))  #在第5项后面添加 77

  9. cbind(1:5,rnorm(5))  #

  10. rbind(1:5,rnorm(5))  #

  11. cbind(1:3,4:6);rbind(1:3,4:6)  #

  12. #去掉矩阵重复的行

  13. (x=rbind(1:5,runif(5),1:5,7:11))  #

  14. x[!duplicated(x),] #

  15. unique(x) #
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:29:25 | 显示全部楼层
生信自学网课程
第十六天:list
  1. z=list(1:3,Tom=c(1:2,a=list('R',LETTERS[1:5]),W='hi'))

  2. z[[1]];z[[2]]

  3. z$T

  4. z$T$a2

  5. z$T[[3]]

  6. z$T$w
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:30:32 | 显示全部楼层
生信自学网课程
第十七天:条形图与表
  1. x=scan()

  2. 3 3 3 4 1 4 2 1 3 2 5 3 1 2 5 2 3 4 2 2 5 3 1 4 2 2 4 3 5 2

  3. barplot(x)

  4. table(x)

  5. barplot(table(x))

  6. barplot(table(x)/length(x))

  7. table(x)/length(x)
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:31:07 | 显示全部楼层
生信自学网课程
第十八天:形成表格
  1. library(MASS) #载入软件包MASS

  2. quine #MASS所带数据

  3. attach(quine) #把数据变量的名字放入内存

  4. #下面是从该数据得到的各种表格

  5. table(Age) #

  6. table(Sex,Age); #

  7. tab=xtabs(~Sex+Age,quine); #

  8. unclass(tab) #

  9. tapply(Days,Age,mean) #

  10. tapply(Days,list(Sex,Age),mean) #

  11. detach(quine) #attach的逆运行
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:31:42 | 显示全部楼层
生信自学网课程
第十九天:写函数
  1. ss=function(n=100){

  2. z=2;

  3. for(i in 2:n)

  4. if(any(i%%2:(i-1)==0)==F)

  5. z=c(z,i);

  6. return(z)

  7. }#求n以内的素数

  8. fix(ss) #用来修改任何函数或者编写一个新函数

  9. ss() #计算100以内的素数

  10. t1=Sys.time() #纪录系统时间点

  11. ss(10000) #计算10000以内的素数

  12. Sys.time()-t1 #费了多少时间

  13. system.time(ss(10000)) #计算执行ss(10000)所用时间

  14. #函数可以不写return,这时最后一个值为return的值

  15. #为了输出多个值最好使用list输出
复制代码


回复

使用道具 举报

6

主题

34

帖子

90

积分

注册会员

Rank: 2

积分
90
 楼主| 发表于 2017-9-19 10:32:14 | 显示全部楼层
生信自学网课程
第二十天:画图
  1. x=seq(-3,3,len=20); y=dnorm(x)#产生数据

  2. w=data.frame(x,y) #合并x和y,生成w

  3. par(mfcol=c(2,2)) #准备画4个图的地方

  4. plot(y~x,w,main='正态密度函数')

  5. plot(y~x,w,type='l',main='正态密度函数')

  6. plot(y~x,w,type='o',main='正态密度函数')

  7. plot(y~x,w,type='b',main='正态密度函数')

  8. par(mfcol=c(1,1))#取消par(mfcol=c(2,2))
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|生信自学网论坛 ( 粤ICP备14097033号 )

GMT+8, 2018-12-10 04:11 , Processed in 0.129949 second(s), 17 queries .

Powered by biowolf.cn

© 2001-2017 BioWolf

快速回复 返回顶部 返回列表