学习小组54期 5th day-数据结构--忍冬

2020-04-21

今天的内容:

数据结构

  1. 标量和变量
> x<-c(1,2,3)
> x
[1] 1 2 3
> x<-1:10
> x
 [1]  1  2  3  4  5  6  7  8  9 10
> x<-seq(1,10,by = 0.5)
> x
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x<-rep(1:3,times=2)
> x
[1] 1 2 3 1 2 3
  1. 从向量中提取元素
    2.1 根据元素位置
> x[4]
[1] 1
> x[-4]
[1] 1 2 3 2 3
> x[2:4]
[1] 2 3 1
> x[-2:4]     #R的代码都是带括号的,括号必须是英文的。
Error in x[-2:4] : only 0's may be mixed with negative subscripts
> x[-(2:4)]
[1] 1 2 3
> x[-(2)&-(4)]    #不理解啥意思,难道不是:排除第2及第4后的元素吗?
[1] 1 2 3 1 2 3
> x[c(2,4)]
[1] 2 1
> x[c(2:4)]
[1] 2 3 1
> 

 2.2 根据值

> x==10   #x=10的元素
[1] FALSE FALSE FALSE FALSE FALSE FALSE
> x==1
[1]  TRUE FALSE FALSE  TRUE FALSE FALSE
> x<2
[1]  TRUE FALSE FALSE  TRUE FALSE FALSE
  1. 数据框
    3.1 读取本地数据
    上传数据到newbee.Rproj所在目录:


> read.table(file ="huahua.txt",sep = "\t",header =T)
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

 3.2 设置行名、列名

> X<-read.csv("doudou.txt")
> col(X)
     [,1] [,2]
[1,]    1    2
[2,]    1    2
[3,]    1    2
[4,]    1    2
[5,]    1    2
> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
> colnames(X)[1]<-"bioplanet"   #命名第一列
> X
  bioplanet X2
1         A  1
2         B NA
3         C NA
4         D  3
5         E NA
X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1) #row.names的意思是修改第一列为行名
X

 3.3 数据框的导出

> write.table(X,file="yu.txt",sep = ",",quote = F)  #分隔符改为逗号,字符串不加双引号(默认格式带由双引号) 
yu.txt

 3.4 变量的保存与重新加载

> save.image(file="bioinfoplanet.RData")#保存当前所有变量
> save(X,file="test.RData")#保存其中一个变量
> load("test.RData")#再次使用RData时的加载命令

 3.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自动补全哦,不过只能提取一列)

> X
  X2
A  1
B NA
C NA
D  3
E NA
> X[2,2]
NULL
> X[2,1]
[1] NA
> X[1,1]
[1] 1
> X[4,]
[1] 3
> X[,1]
[1]  1 NA NA  3 NA
> X[,0]
data frame with 0 columns and 5 rows
> X[1]
  X2
A  1
B NA
C NA
D  3
E NA
> X$X2   #列名
[1]  1 NA NA  3 NA

 3.6 直接使用数据框中的变量

a <-data.frame(case=paste("S",1:50),values=runif(50))
 plot(a)
a
plot(a$case,a$values)   #发现x y轴名改变了
a`
  • 1:attach

将数据框名添加到搜索环境中:attach(a),作图时就只需输入列名(连$都不用了)。

attach(a)
plot(case,values)

做完后将a删除出搜索环境 detach(a)
局限性:两个以上数据框的列名有冲突时,同时attach会报错。

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

 3.7 思考题

save(X,file="test.RData")这句代码如果报错X not found,是为什么,应该怎么解决?

可能的原因:X不存在?此时应该检查X的变量名称是否正确?或者工作的目录变化了?其实我不知道原因……

你可能感兴趣的:(学习小组54期 5th day-数据结构--忍冬)