学习小组DAY5——数据结构
2020-02-18 本文已影响0人
生信小工厂

数据结构
一、向量(vector)
1.标量和向量的区分
标量:一个元素组成的变量
矢量:多个元素组成的变量
(元素:数字或者字符用chr表示。)
例:
标量:1
,"chaichai"
标量可以是一个数字,或者一个字符串,字符串在使用时必须加引号。
矢量:c(1,2,3)
,c("chaichai","longlong","fengfeng")
依次排列的多个数字或字符串,中间用逗号分隔。
使用时,变量一般都会被赋值,赋值符号是<-
a<- c(2,3,4,5) #将a定义为由元素2、3、4、5组成的向量
a
b<- 1:10 #从1-10之间所有的整数
b
c<- seq(1,10,by = 0.5) #1-10之间每隔0.5取一个数(注意符号是逗号)
c
d<- rep(1:3.times = 3) #1-3重复3次
d
运行实例如图

2.从向量中提取元素
(1)根据元素位置提取
a[4] #第四个元素
b[-4] #排除法,除了第四个元素之外剩余的元素
c[2:4] #第2到第4个元素
d[-(2:4)] #除了第2-4个元素
e[c(1,5)] #第1个和第5个元素
运行实例如图

(2)根据元素的值提取
a[a == 10] #等于10的元素
b[b<7] #小于7的元素
d[d %in% c(1,2,5)] #存在于向量c(1,2,5)中的元素
运行实例如图

二、数据框(Data frame)
1.读取本地数据
将数据放在工作目录中
read.table(file = "文件名",sep = "\t",header = T) #读取文件,分隔符为Tab,有表头。
a<-read.table(file = "文件名",sep = "\t",header = T) #把这个数据框赋给一个变量
X<-read.csv('文件名')
运行实例如图

2.设置行名和列名
X<-read.csv('文件名') #这里的变量X是一个数据框
colnames(X) #查看列名
rownames(X) #查看列名,默认值的行名就是行号,1.2.3.4...
colnames(X) [1]<-"bioplanet" #有的公司返回数据,左上角第一格为空,R会自动补位x,用这个命令来修改
X<-read.csv(file = "文件名",sep = "\t",header = T,row.names=1) #最后这个row.names的意思是修改第一行为列名
运行实例如图

3.数据框的导出
write.table(X,file = "文件名",seq = ",",quote=F #分隔符改为逗号,字符串不加双引号(默认格式带有双引号)
4.变量的保存与重新加载
save.image(file = "文件名.RData") #保存当前所有变量
ssave(frame1,file = "frame1.RData") #保存其中一个变量
load("frame1.RData") #再次使用RData时的加载命令
5.提取元素
- X[x,y] #第x行y列
- X[x,] #第x行
- X[,y] #第y列
- X[y] #也是第y列
- X[a:b] #第a列到第b列
- X[c(a,b)] #第a列和第b列
- X$列名 #也可以提取列(支持Tab自动补全,只能提取一列)
6.直接使用数据框中的变量
方法1:attach
将数据框名添加到搜索环境中:attach(a),作图时就只需输入列名(连$都不用了)。
attach(a)
plot(case,values)
做完后将a删除出搜索环境。
detach(a)
局限性:两个以上数据框的列名有冲突时,同时attach会报错。
运行实例如图

方法2:with
with(a,{
plot(case,values)
x<<-summary(values) ##求和并赋值给x,<<的意思是作为全局变量,y也就是出了大括号仍有效。
})
x #运行完后打印x
运行实例如图
