学习小组Dnay5笔记-程程

作者: 奶糕卡娜呀 | 来源:发表于2020-10-13 18:19 被阅读0次

元素,标量,向量的概念

  • 元素:数字,字符串等
  • 标量:一个元素组成的变量
  • 向量:有序的多个元素组成的变量

一些变量赋值的方式

  • seq()的使用
#产生11个从0-1的数字
seq(0, 1, length.out = 11)  
#从1-9产生相差为2的数字
seq(1, 9, by = 2)      
#从1-9产生相差为pi的数字
seq(1, 9, by = pi)  
#从1-6产生相差为3的数字
seq(1, 6, by = 3)  
#从1.575-5.125产生相差为0.05的数字
seq(1.575, 5.125, by = 0.05)  
#相当于x <- 1:17
seq(17) 

#运行结果

> seq(0, 1, length.out = 11)     
[1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 
> seq(1, 9, by = 2)         
[1] 1 3 5 7 9 
> seq(1, 9, by = pi)     
[1] 1.000000 4.141593 7.283185 
> seq(1, 6, by = 3)    
[1] 1 4 
> seq(1.575, 5.125, by = 0.05)     
[1] 1.575 1.625 1.675 1.725 1.775 1.825 1.875 1.925 1.975 2.025 
[11] 2.075 2.125 2.175 2.225 2.275 2.325 2.375 2.425 2.475 2.525 
[21] 2.575 2.625 2.675 2.725 2.775 2.825 2.875 2.925 2.975 3.025 
[31] 3.075 3.125 3.175 3.225 3.275 3.325 3.375 3.425 3.475 3.525 
[41] 3.575 3.625 3.675 3.725 3.775 3.825 3.875 3.925 3.975 4.025 
[51] 4.075 4.125 4.175 4.225 4.275 4.325 4.375 4.425 4.475 4.525 
[61] 4.575 4.625 4.675 4.725 4.775 4.825 4.875 4.925 4.975 5.025 
[71] 5.075 5.125
  • rep()的使用
#重复产生1-4的数字,2次
rep(1:4, 2)  
#1-4的数字,每个数字重复两次
rep(1:4, each = 2)     
#1-4的数字,指定每个数字的重复次数
rep(1:4, c(2,2,2,2))    
rep(1:4, c(2,1,2,1)) 
#从1-4产生数字,每个数字重复2次,总共产生数字长度为4
rep(1:4, each = 2, len = 4)   
#len>8····(2*4),此时从头开始继续重复输出
rep(1:4, each = 2, len = 10) 
#1-4的数字,每个数字重复2次,该数字排列整体重复3次
rep(1:4, each = 2, times = 3) 

#运行结果

> rep(1:4, 2)  
[1] 1 2 3 4 1 2 3 4 
> rep(1:4, each = 2)      
[1] 1 1 2 2 3 3 4 4 
> rep(1:4, c(2,2,2,2))  
[1] 1 1 2 2 3 3 4 4 
> rep(1:4, c(2,1,2,1))  
[1] 1 1 2 3 3 4 
> rep(1:4, each = 2, len = 4)    
[1] 1 1 2 2 
> rep(1:4, each = 2, len = 10)  
 [1] 1 1 2 2 3 3 4 4 1 1 
> rep(1:4, each = 2, times = 3)  
[1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4

从向量中提取元素

  • 按值提取
#x中等于5的数字
x[x==5] 
x[x<=6] 
#输出x中属于(1,3,5,7,9)中的数字
x[x %in% c(1,3,5,7,9)]

#运行结果

> x[x==5] 
[1] 5 
> x[x<=6] 
[1] 1 2 3 4 5 6 
> x[x %in% c(1,3,5,7,9)] 
[1] 1 3 5 7 9
  • 按元素位置提取
x <- 1:10  
#输出第四个元素
x[4] 
#“-”表示除去该元素的输出
x[-4] 
x[2:4] 
x[-(2:4)] 
x[c(1,3,5)] 

#运行结果

> x <- 1:10 
> x[4] 
[1] 4 
> x[-4] 
[1]  1  2  3  5  6  7  8  9 10 
> x[2:4] 
[1] 2 3 4 
> x[-(2:4)] 
[1]  1  5  6  7  8  9 10 
> x[c(1,3,5)] 
[1] 1 3 5

数据框

  • 读取本地数据
#sep="\t"表示以Tab为分隔符
#header = T表示文件数据带表头
read.table(file="huahua.txt",sep="\t",header=T) read.table(file="doudou.txt",sep=",",header =T)

#运行结果

> 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 
> read.table(file="doudou.txt",sep=",",header =T)   
   X1 X2 
1  A  1 
2  B NA 
3  C NA 
4  D  3 
5  E NA
  • 修改行名/列名
#读取文件
x <- read.csv("doudou.txt") 
#查看列名
colnames(x)
#查看行名 
rownames(x)
#j将第一列列名更改为bioplanet 
colnames(x)[1]<-"bioplanet" 
#查看更改后的列名
colnames(x)  
————————————————————————————————————
#运行结果
————————————————————————————————————
> x <- read.csv("doudou.txt") 
> colnames(x) 
[1] "X1" "X2" 
> rownames(x) 
[1] "1" "2" "3" "4" "5" 
> colnames(x)[1]<-"bioplanet" 
> colnames(x) 
[1] "bioplanet" "X2" 
#读入文件
x<-read.csv("doudou.txt") 
#输出x
x 
#将文件第一列作为行名
x<-read.csv(file="doudou.txt",sep=",",header =T,row.names=1) 
x
——————————————————————————————————————————————————————————————————————
#运行结果
——————————————————————————————————————————————————————————————————————
x<-read.csv("doudou.txt") 
> x   
  X1 X2 
1  A  1 
2  B NA 
3  C NA 
4  D  3 
5  E NA 
> x<-read.csv(file="doudou.txt",sep=",",header =T,row.names=1) 
> x   
  X2 
A  1 
B NA 
C NA 
D  3 
E NA
  • 数据框的导出
#quote=F表示输出的char或factor不用""引住;quote=T则使用""
write.table(x,file="yu.txt",sep=",",quote=F)
  • 提取元素
x<-read.table(file="doudou.txt",sep=",",header=T) 
x[1,2] 
x[1,] 
x[,2] 
x[2] 
x[1:2] 
x[c(1,2)] 
x$X2

#运行结果

> x<-read.table(file="doudou.txt",sep=",",header=T) 
> x[1,2] 
[1] 1 
> x[1,]   
   X1 X2 
1  A  1 
> x[,2] 
[1]  1 NA NA  3 NA 
> x[2]   
  X2 
1  1 
2 NA 
3 NA 
4  3 
5 NA 
> 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
  • 变量的保存与重新加载 RData
#保存当前全部变量
save.image(file="bioinfoplanet.RData")
#保存变量x
save(x,file="test.RData")
#重新加载命令
load("test.RData")
#运行结果
> x<-1:10 
> save(x,file="test.RData") 
> load("test.RData") 
> x
[1]  1  2  3  4  5  6  7  8  9 10

【选修】直接使用数据框中的变量--提取某两列作散点图

#环境设置函数,设置数据框的读取方式,将String读取为Factor
options(stringsAsFactors = T) 
#paste0("S",1:9)将S与1-9的数字连接起来形成字符
a <-data.frame(case=paste0("S",1:9),values=runif(9))
plot(a$case,a$values)
  • 省力实现,避免反复输入a
  1. attach
attach(a) 
plot(case,values)
  1. with
    with函数使得{}里的操作都在数据框中进行
with(a,{  plot(case,values) 
#<<x作为全局变量
x<<-summary(values)
})
x 
#x输出结果
#最小值Min,四分位数Qu,中位数Median,平均值Mean,最大值Max
> x    
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
 0.1068  0.3873  0.4103  0.4747  0.6760  0.8566 

相关文章

网友评论

    本文标题:学习小组Dnay5笔记-程程

    本文链接:https://www.haomeiwen.com/subject/qowvpktx.html