2020-11-03DAY5-添添-数据结构
1、向量
1)标量和向量的区分
元素:数字或者字符串(用chr表示)等。
标量:一个元素组成的变量。
向量:多个(有序排列)元素组成的变量。
x<- c(1,2,3)
:将x定义为由元素1,2,3组成的向量。
x<- 1:10
:将x定义为从1-10之间所有的整数
x<- seq(1,10,by = 0.5)
:将x定义为1-10之间每隔0.5取一个数(注意是逗号不是分号)
x<- rep(1:3,times=2)
:将x定义为1-3 重复2次
新手tips:
如果把这几行代码都打过了,那么x就被赋值了4次,结果就是第一次赋值被第二次的覆盖了,第二次的赋值又被第三次的覆盖了,以此类推,以最后一次为准。
2)从向量中提取元素
①根据元素位置
x[4]
:x第4个元素
x[-4]
:排除法,除了第4个元素之外剩余的元素
x[2:4]
:第2到4个元素
x[-(2:4)]
:除了第2-4个元素
x[c(1,5)]
:第1个和第5个元素
②根据元素的值
x[x==10]
:等于10的元素
x[x<0]
x[x %in% c(1,2,5)]
:x是否是向量c(1,2,5)中的元素
(如果是,会显示x的值,如果不是,会显示0,意思就是没有)
2、数据框
现先在后台回复数据类型,下载两个txt,放到工作目录下
1)读取本地数据
read.table(file="huahua.txt",sep="\t",header=T)
a<-read.table(file="huahua.txt",sep="\t",header=T)
header 是否有列名(默认无)
seqp指定分隔符(空格、TAB、换行符、回车符)
sep="\t"
:指定分隔符(空格、TAB、换行符、回车符)TAB
quote 制定包围字符型数据的字符。
关于read.table的用法:(https://www.cnblogs.com/steamed-bread/p/5560641.html)
2)设置行名和列名
X<-read.csv('doudou.txt')
colnames(X)
:查看列名
rownames(X)
: 查看行名,默认值的行名就是行号,1.2.3.4...
colnames(X)[1]<-"bioplanet"
:有的公司返回数据,左上角第一格为空,R会自动补为x,用这个命令来修改
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)
:最后row.names的意思是修改第一列为行名
(修改前是是这样的
修改后
image.png
问题:read.table和read.csv的区别
3)数据框的导出
write.table(X,file = "yu.txt",sep = ",",quote=F)
:分隔符改为逗号,字符串不加双引号(默认格式带由双引号)
4)变量的保存与重新加载
保存的格式是RData
save.image(file="bioinfoplanet.RData")
:保存当前所有变量
save(X,file="test.RData")
:保存其中一个变量
load("test.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自动补全哦,不过只能提取一列)
课后问题:
save(X,file="test.RData")这句代码如果报错object X not found,是为什么,应该怎么解决?
回答:之前的变量名是小写的