(今天及前5天的学习笔记中的内容和网址未标记均引用自“生信星球”,少量引自百度百科等网站,记不大清了,以后及时标注)
今天学习的主要内容:
了解R语言中的数据对象:
- 向量:重点
- 数组
- 矩阵
- 因子
- 列表
- 数据框:重点
一 向量
向量的元素可以是数值型、字符型、逻辑值型和复数型
向量中可以包含一个元素,也可以包含多个元素
向量的创建——直接创建,函数创建
向量的引用(从向量中提取元素)
今天练习:
(1)标量和向量的区分
(2)向量的创建和从向量中提取元素
创建向量x<-rep(1:3,times=5)
从向量中提取元素(根据位置和数值)
> x[4]
[1] 1
> x[-4]
[1] 1 2 3 2 3 1 2 3 1 2 3 1 2 3
> x[2:4]
[1] 2 3 1
> x[-(2:4)]
[1] 1 2 3 1 2 3 1 2 3 1 2 3
> x[c(1,5)]
[1] 1 2
> x[x==1]
[1] 1 1 1 1 1
> x[x<2]
[1] 1 1 1 1 1
> x[x %in% c(1,2,5)]
[1] 1 2 1 2 1 2 1 2 1 2
> x[x %in% c(1,3,5)]
[1] 1 3 1 3 1 3 1 3 1 3
二 数据框
数据框是能把各种不同类型数据组织在一起的数据结构,类似excel, 可以引用,也可以创建,但要遵守一下原则(摘自百度“爱编程爱统计”):
1.列可以是向量(数值型、因子型、逻辑型),还可以是矩阵、列表或者其它数据框。
2.数值型、逻辑型、因子型向量保持原样,但字符型会被自动编码成因子型。因为采用默认的参数,所以若需要自定义因子的编码规则,请首先将字符型向量通过 factor() 函数转化成因子型后再放入数据框。
3.列向量必须具有相同的长度,若是矩阵,则其行数必须和其它向量的长度一致。
今天练习:
(1)读取本地数据
卡住了因为工作目录默认为其它地方了,查看getwd()
, 修改setwd()注意斜线和引号
,
> X<-read.csv("doudou.txt")
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'doudou.txt': No such file or directory
> getwd()
[1] "C:/Users/shanshuang/Documents"
> setwd(C:/Users/shanshuang/Desktop/RData)
Error: unexpected '/' in "setwd(C:/"
> setwd(C:/Users/shanshuang/Desktop/RData)
Error: unexpected '/' in "setwd(C:/"
> setwd("C:/Users/shanshuang/Desktop/RData")
> getwd()
[1] "C:/Users/shanshuang/Desktop/RData"
txt文件中如下格式,可通过x<-read.csv('文件名.txt')
获得数据框
read.table(file = "huahua.txt",sep = "\t",header =T)
引用如上txt文件,分隔符为tab,有表头
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
(2)设置行名和列名
> x<-read.csv('doudou.txt')
> colnames(x)
[1] "X1" "X2"
> rownames()
Error in rownames() : argument "x" is missing, with no default
> rownames(y)
Error in rownames(y) : object 'y' not found
> rownames(x)
[1] "1" "2" "3" "4" "5"
> colnames(x)[1]<-"bioplanet"
x<-read.csv(file="huahua.txt",sep="\t",header=T,row.names=1)
x<-read.csv(file="huahua.txt",sep="\t",header=T)
(3)数据框的导出
write.table(x,file="shanshuang0825.txt",sep=",",quote=F)
分隔号为,字符串不加引号(4)变量的保存与重新加载
没有处理好的数据可保存
save.image(file="bioinfoplanet.RData")保存所有变量
save(frame,file="frame1.RData")保存一个变量
下次加载load("frame1.RData")
(5)提取元素
我没有复制我是照抄的,结果错了,没有理解意思,机械的照抄了
x[x,y]
Error in `[.data.frame`(x, x, y) : object 'y' not found
数据框
x[1,1]
[1] A
Levels: A B C D E
> x[1]
X1
1 A
2 B
3 C
4 D
5 E
> x[1,]
X1 X2
1 A 1
> x[1:2]
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> x[c(1,2)]
X1 X2
1 A 1
2 B NA
3 C NA
4 D 3
5 E NA
> x$X2
[1] 1 NA NA 3 NA
(6)直接使用数据框中的变量
建一个数据框:c<-data.frame(case=paste("s",c(1:50)),value=runif(50))
用数据框中的数据做一个散点图plot(c$case,c$value)
更便捷的两个方法
1.attach(c)将数据框名添加到搜索环境中
再plot(cases,value)
,删除用detach(c)
- with循环
卡住了,不会输入,后来经老师指导解决
with(c,{
+ plot(case,values)
x<<-summary(values) #求和并赋值给x,<<的意思是作为全局变量,y也就是出了with循环仍有效。
})
x #运行完后打印x
练习使用一下脚本窗口:
把with命令复制到脚本(写好的各种代码)窗口中,选中,点run即可运行,点save,选第一个system default, 可保存脚本,后缀为.R,下次可直接打开运行
昨天的问题解决:
history()
结果显示在右上窗口中的history里面,不在控制台里