R语言编程基本操作上课讲义

上传人:go****e 文档编号:137414048 上传时间:2020-07-08 格式:PPT 页数:160 大小:3.07MB
返回 下载 相关 举报
R语言编程基本操作上课讲义_第1页
第1页 / 共160页
R语言编程基本操作上课讲义_第2页
第2页 / 共160页
R语言编程基本操作上课讲义_第3页
第3页 / 共160页
R语言编程基本操作上课讲义_第4页
第4页 / 共160页
R语言编程基本操作上课讲义_第5页
第5页 / 共160页
点击查看更多>>
资源描述

《R语言编程基本操作上课讲义》由会员分享,可在线阅读,更多相关《R语言编程基本操作上课讲义(160页珍藏版)》请在金锄头文库上搜索。

1、R语言编程,朱 强,15327167200,17894585,R语言交流 232100825,主要内容,1. R软件基本操作 2. R软件画图 3. 统计分析方法,教材及参考文献,1.R语言实战,高涛,肖楠,陈钢译,人民邮电大学出版社 2.多元数据分析及其R实现,肖枝洪,朱强等,科学出版社 2013 3.统计建模与R软件,薛毅,陈立萍,清华大学出版社, 2007 4 R语言与Bioconductor 生物信息学应用,高山,欧剑虹, 肖凯,天津科技翻译出版有限公司 5.孙啸等. R语言及Bioconductor在基因组分析中的应用. 科学出版社, 2006,考核方式,考勤20%+ 平时上机作业4

2、0%+ 期末上机40%(开卷),R介绍,R是 一个开放(GPL)的统计编程环境 一种语言,是语言(由ATsexf 1 M F M M F Levels: F M 函数factor()用来把一个向量编码为一个因子,一般形式为 factor(x,levels=sort(unique(x),na.last=TRUE),labels, exclude=NA,ordered=FALSE) is.factor()检验对象是否是因子,as.factor()把向量转化为因子。levels()可以得到因子的水平 sex.level=levels(sexf);sex.level 1”F” “M” 对因子向量可用t

3、able()统计各类数据的频数。 sex.tab=table(sexf);sex.tab,2.tapply()函数 例子:知道5位学生的性别,还知道这5位学生的身高,分组求身高的平均值 height=c(174,165,180,171,160) tapply(height,sex,mean) 1 F M 162.5 175.0 tapply() 的一般形式为 tapply(x,INDEX,FUN=NULL,simplify=TRUE) x是一对象,通常为一向量,INDEX是与X有同样长度的因子,FUN是要计算的函数 3.gl()函数 gl()可以方便地产生因子, gl(n,k,length=n

4、*k,labels=1:n,odered=FALSE) n为水平数,k为重复的次数,length为结果的长度,labels为n维向量,表示因子水平,ordered是逻辑变量,表示是否为有序因子,缺省值FALSE gl(2,3) gl(2,1,6),列表(list)和数据框(data.frame) 1、列表的构造 rec=list(name=“黎明”,age=30,scores=c(85,76,90) rec $name 1 黎明 $age 1 30 $scores 1 85 76 90,列表元素可用”列表名下标”引用 rec2 130 rec32 但列表不同于向量,每次只能引用一个元素,如re

5、c1:2 是不允许的,对连续型变量产生因子,或分类 age- runif(100)*50 table(cut(age,c(0,10,20,30,40,50) (0,10 (10,20 (20,30 (30,40 (40,50 27 20 17 19 17,注意:”列表名下标”或”列表名下标范围”的用法是允许的,但与前面的含义不同,它还是一个列表 若指定了元素的名字,则引用列表元素还可以用它的名字作为下标 “列表名“元素名”或者“列表名$元素名” rec“age” rec$age 2、列表的修改 rec$name=“张三” rec$age=list(20,32,58) 可重新添加一些到列表中 r

6、ec$sex=“男” rec6=161 第5号元素没定义,所以值是”NULL”,若rec是一个向量,则空元素为”NA” 列表之间还可以连接起来, List.ABC=c(list.A,list.B,list.C),3.数据框 数据框通常是矩阵形式的数据,但矩阵各列可以是不同类型。数据框每列是一个变量,每行是一个观测。 (1)生成数据框 一般可以把数据框看作一种推广了的矩阵,它可用矩阵形式 表示,数据框可以用data.frame()函数生成,用法与list()函数相同 ls()#列出工作空间你定义的所有变量 str(x)#给出对象x的一些信息,d=data.frame(name=c(李明,张聪,王

7、建),age=c(30, 35,28,40),height=c(180,162,175) d name age height 1 李明 30 180 2 张聪 35 162 3 王建 28 175 可以将列表转化为一个数据框:如比较他们之间的区别 d2=list(name=c(李明,张聪,王建),age=c(30, 35,28),height=c(180,162,175) as.data.frame(d1),(2)数据框的引用 引用数据框元素的方法与引用矩阵元素的方法相同。 d1:2,2:3 数据框的各变量也可用按列表引用(用双括号或$引用) d“age” 1 30 35 28 d$heigh

8、t 1 180 162 175 数据框的各行也可以定义名字,用rownames属性定义。 names(d) 1 name age height rownames(d)=c(one,two,three) rownames(d) 1 one two three,(3)attach()函数 数据框的主要用途是保存统计建模的数据。调用数据框的变量像以前d是不方便的,R提供了函数attach()可以把变量调入内存。 attach(d) r=age/height#此时age,height是可以利用的 但r的值不会进入数据框d,若想把刚才r当作新的数据框的变量 d$r=age/weight d name a

9、ge height r one 李明 30 180 0.1666667 two 张聪 35 162 0.2160494 three 王建 28 175 0.1600000 detach(d)取消连接,(4)列表与数据框的编辑 可用函数edit()对列表或者数据框进行编辑 newd=edit(d) 当然也可对向量,数组,矩阵类型的数据进行修改和编辑. Fix 用函数merge(x, y, .) 对两个数据框合并成一个 可查看帮助.?merge,调用R内部的iris数据集。回答以下问题 查看每一列变量的名称 3.分别根据Species的种类计算Sepal.Length及Sepal.Width的平均

10、值和标准差。 4.画出Petal.Length与Petal.Width的散点图,课堂练习,输入输出 1.输入 (1)read.table()等相关函数 read.table()函数是读表格形式的文件,若”班级”数据已输入到一个纯文本文件”cjb.txt”中,假设存储在c:/cjb.txt, 其格式如下:,学号 姓名 平时 其中 期末 总评 07*001吴蒙蒙85666469 07*002高旭95809491 07*003李楠92785567 07*004赵利冲78484040 07*005何耀龙89585160 07*006何星85448174 07*007唐佳征95735365 07*008

11、程西平96868990 07*009陈茂琴95846977 07*010程长久94798284 07*011王锋93748685 07*012何福顺90825366 07*013罗玲96939092 07*014刘卿卿97679489 07*015张晓芳93728282 072301016杨乐遥88615060 072301017沈亮95415460 072301018高晶98769189 072301020郭慧93918387 072301021陈灿92766975 072301022李婷90766975 072301023陈元俊94745969 072301024谭海梅95646370 0

12、72301025张亚琴95898588 072301026胡阳98929897 072301027张冲92606569 072301028位会敏95928287 072301029胡红96789089 072301030岳鑫璐96607979 072301031李欢欢988510097 072301032陈龙龙92656470 072301033朱盼88556668,读入格式为: cjb=read.table(c:/cjb.txt,header=TRUE) cjb is.data.frame(cjb) 1 TRUE header=TRUE表示第一行读入的是变量名,默认是 header=FALS

13、E,即自动会添上列名.具体用法可见 帮助.?read.table d=read.csv(txt.csv)#读逗号分隔的文本文件 d=read.csv2(“txt.csv”)#读分号分隔的文本文件, 逗号代替小数点 d=read.delim(foo.txt)#读制表符分隔的文件 d=read.delim2(“foo.txt”)#读制表符分隔的文件, 逗号代替小数点 d=read.fwf(txt.fwf)#读固定宽的文件,D=readLines(“a.txt”)#每行有不同的结构 readLines(con = stdin(), n = -1L, ok = TRUE, warn = TRUE, e

14、ncoding = unknown) cat(TITLE extra line, 2 3 5 7, , 11 13 17, file=ex.data, sep=n) readLines(ex.data, n=-1) unlink(“ex.data”) # 删除文件 读取NC_023010.faa文件 My_fasta=readLines(NC_023010.faa) fast=as.character(My_fasta) abc=grep(,fast) a1=unlist(strsplit(fast2:(abc2-1),split=) 做其他的可以构造一个循环,R中一般不能直接读xls文件,可

15、先转换为csv (2)scan()函数 scan()函数可直接读纯文本文件数据和直接从屏幕上 输数据 x=scan() 1: 2 4 4.2 5 5: Read 4 times x 1 2 4 4.2 5 假设有10名学生的体重数据已输入文件”weight.txt”, 格式为45 63.5 32.5 67.2 77.5 55 54 49 62 70 w=scan(c:/weight.txt),假设weight.txt中,奇数是女性体重,偶数是男性体重, 即数据中有不同的属性 wfm=scan(c:/weight.txt,list(F=0,M=0) Read 5 records 将数据读入,并以

16、列表的方式赋给变量wfm wfm $F 1 45.0 32.5 77.5 54.0 62.0 $M 1 63.5 67.2 55.0 49.0 70.0 其它数据格式的读入可以参见帮助文档中的R数据输入 输出.,2.输出 直接输入变量名即可输出 x=1:5 x 1 1 2 3 4 5 用print(x)与上式是等价的,里面有些参数,digits指定 每个数输出的有效数字位. options(digits=3) 1/3 1 0.333 write.table#输出数据框到文件 write.csv write.csv2 Write.matrix#输出矩阵到文件,需要加载包MASS,cat()函数也可用来输出,但它可以把多个参数连接起来 再输出(类似于paste()的功能) cat(i=,i,n)#注意为什么要用”n” ca

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号