北京大学生物信息平台论坛

 找回密码
 立即注册
搜索
热搜: 通知 活动

CLS/PTN 2016春季 《生物信息学》课程资料

[复制链接]
licheng 发表于 2016-3-8 17:03:48 | 显示全部楼层 |阅读模式
3.8 R语言介绍

1. 教师:北大生科院生物信息中心 李程
邮件:cheng_li@pku.edu.cn
讨论论坛:forum.cbi.pku.edu.cn
R语言应用例子:R语言会议:http://cos.name/2014/11/7th-r-conference-shanghai/

2. 在脚本编辑器里运行R程序当前行或选择的多行:
PC:F5或Control + R
Mac:Command + Enter

3: 演示程序
  1. ### function and flow control
  2. n <- 0

  3. my.fac <- function(n) {

  4.   prod <- 1

  5.   if (n < 0)
  6.   {
  7.     print("negative")
  8.     prod <- NA
  9.   } else if (n > 0) {
  10.     for (i in 1:n) {
  11.       prod <- prod * i
  12.     }
  13.   } else if (n == 0) {
  14.     prod <- 1
  15.   }
  16.   return(prod)
  17. }

  18. my.fac

  19. my.fac(-40)
  20. my.fac(40)
  21. my.fac(0)


  22. prod

  23. factorial(n)


  24. #### make a plot

  25. x <- seq(1, 50, 0.1)
  26. y <- 2 * (1 - cos(x))

  27. plot(x, y, type="l")


  28. theta <- seq(0, 2*pi, 0.01)
  29. r <- 2 * (1 - cos(theta))
  30. y <- r * cos(theta)
  31. x <- r * sin(theta) / 2
  32. plot(x, y, type="l")


复制代码
mmexport1457361226886.jpg
回复

使用道具 举报

 楼主| licheng 发表于 2016-3-10 16:54:55 | 显示全部楼层
3.10 R做图

浏览Quick-R网站, 熟悉基本做图类型和使用的函数:
http://www.statmethods.net/graphs/index.html
http://www.statmethods.net/advgraphs/index.html

加图例的例子:
http://learningrbasic.blogspot.r ... legend-to-plot.html

课堂演示程序:
# 看R中的数据集和内容
data()
Orange
class(Orange)
str(Orange)
NA
Orange$age
head(Orange)
tail(Orange)
?Orange

# 画散点图
plot(Orange$age, Orange$circ)
plot(Orange$a, Orange$c)
plot(Orange$age, Orange$circ)
?plot
plot(x=Orange$age, y=Orange$circ)
plot(Orange$age, Orange$circ)
plot(Orange$age, Orange$circ, type="l")
plot(Orange$age, Orange$circ, type="n")
plot(Orange$age, Orange$circ, type="l", main="Trees")
plot(Orange$age, Orange$circ, type="l", main="Trees", xlab="age")
plot(Orange$age, Orange$circ, pch=16)

# 改变点的颜色
colors()
plot(Orange$age, Orange$circ, pch=16, col=Orange$Tree)
my.col <- c("blue", "red", "green", "yellow", "purple")
my.col
my.col[2]
my.col[c(3,2,3)]
my.col[5:1]
rep(5:1, 10)
my.col[rep(5:1, 10)]

Orange$Tree
my.col[Orange$Tree]
as.numeric(Orange$Tree)
as.character(Orange$Tree)
as.numeric(as.character(Orange$Tree))
my.col[as.numeric(as.character(Orange$Tree))]
tree.col <- my.col[as.numeric(as.character(Orange$Tree))]
tree.col
plot(Orange$age, Orange$circ, pch=16, col=tree.col)

# 加颜色的图例
?legend
plot(Orange$age, Orange$circ, pch=16, col=tree.col)
legend(250, 175, my.col)
plot(Orange$age, Orange$circ, pch=16, col=tree.col)
legend(250, 175, Orange$Tree)
plot(Orange$age, Orange$circ, pch=16, col=tree.col)
legend(250, 175, 1:5)
legend(250, 175, 1:5, lty=rep(1,5))
plot(Orange$age, Orange$circ, pch=16, col=tree.col)
legend(200, 200, 1:5, lty=rep(1,5),lwd=rep(3,5), col=my.col)
legend(200, 200, 1:5, pch=16,lwd=rep(3,5), col=my.col)
plot(Orange$age, Orange$circ, pch=16, col=tree.col)
legend(200, 200, 1:5, pch=16,col=my.col)

# 输出历史命令行
history()
?history
history(Inf)

# 读入数据文件,tab delimited text file, 见附件
course <- read.table("C:\\LCH\\Statistics\\course.txt", header=T)
str(course)

course.txt

106 Bytes, 下载次数: 774

回复 支持 反对

使用道具 举报

 楼主| licheng 发表于 2016-3-15 11:10:09 | 显示全部楼层
3.15,4.21 相关性、线性回归

- 相关性课程材料:https://yunpan.cn/cPKBUJ2UcCmWi  访问密码 ef48

- ISLR《An Introduction to Statistical Learning with Applications in R》
http://forum.cbi.pku.edu.cn/foru ... d&tid=131&fromuid=3
参考:第2章:统计学习;第3章:线性回归

- 在R里安装ISLR包:https://cran.r-project.org/web/packages/ISLR/index.html
PC: 下载附件ISLR_1.0.zip,选择PC版R的菜单“Packages/Install package from local zip file"

- 助教讲解一篇文献,用统计回归发现生物规律的例子(附件文献:GR12.pdf,杨晓旭的讲解:literature.pdf)

- 课后练习:找一个课题中的数据集,做简单或多元线性回归,分析结果、评价模型的合适性。

GR12 A genome-wide analysis of common fragile sites- What features determine chr.pdf

1.36 MB, 下载次数: 146

ISLR_1.0.zip

2.78 MB, 下载次数: 166

regression.R.txt

2.11 KB, 下载次数: 804

Advertising.csv.txt

5.04 KB, 下载次数: 754

literature.pdf

1.89 MB, 下载次数: 786

回复 支持 反对

使用道具 举报

 楼主| licheng 发表于 2016-4-28 11:15:47 | 显示全部楼层
3.3 R语言介绍

作业二
1.2 数据(在Excel或文字编辑器中存为tab-delimited text file)
  1. Number    Male    Female    All
  2. 0    28    49    77
  3. [1-3]    24    31    55
  4. [3-5]    6    4    10
  5. [5-]    3    3    6
  6. Other    1    2    3
  7. All    62    89    151
复制代码
读入R的代码示例:
  1. course <- read.delim("C:\\LCH\\Statistics\\Lectures\\01_R_Intro\\course attending times.txt")

  2. course
  3. str(course)
  4. head(course)
  5. tail(course)

  6. barplot(course$Male[1:5])
复制代码
回复 支持 反对

使用道具 举报

北京大学生物信息平台论坛

GMT+8, 2017-9-20 06:32 , Processed in 0.047555 second(s), 29 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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