R语言:数据结构与向量

一、数据结构

<img src="https://raw.githubusercontent.com/yhhhygge/img/master/img20200510172712.png" alt="数据结构" style="zoom: 50%;" />

  • 数据框约等于“表格”
  • 向量则是数据框单独拿出的一列,视为一个整体。
  • 一个向量只能有一种数据类型,可以有重复值。

".Rdata"/".history" 文件

<img src="https://raw.githubusercontent.com/yhhhygge/img/master/img20200510172625.png" alt="配置文件" style="zoom:50%;" />

二、向量

🌟2.1向量的生成

(1)用 c()逐一放到一起

> c(2,5,6,2,9)
> c("a","f","md","b")

(2)连续的数字用冒号**”:”

**

> 1:5

(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm > rep("gene",times=3)

> seq(from=3,to=21,by=3)
> rnorm(n=3) 

(4)通过组合,产生更为复杂的向量。

> paste0(rep("gene",times=3),1:3)

🌟2.2对单个向量进行的操作

(1)赋值给一个变量名

> x=c(1,3,5,6,2) #随意的写法 
> x
> x<-c(1,3,5) #规范的赋值符号
> x

赋值+输出一起执行(两种方法):

> (x <- c(1,3,5))
> x <- c(1,3,5);x

(2)简单数学计算

> x<-c(1,3,5,1)
> x
[1] 1 3 5 1
> x+1 
[1] 2 4 6 2
> log(x) 
[1] 0.000000 1.098612 1.609438 0.000000 
> sqrt(x) 
[1] 1.000000 1.732051 2.236068 1.000000

(3)根据某条件进行判断,生成逻辑值向量

> x>3
[1] FALSE FALSE TRUE FALSE 
> x==3 
[1] FALSE TRUE FALSE FALSE

(4)初级统计

> max(x) #最大值
[1] 5
> min(x) #最小值
[1] 1
> mean(x) #均值
[1] 2.5
> median(x) #中位数
[1] 2
> var(x) #方差
[1] 3.666667
> sd(x) #标准差
[1] 1.914854
> sum(x) #总和
[1] 10
> length(x) #长度
[1] 4
> unique(x) #去重复
[1] 1 3 5
> duplicated(x) #对应元素是否重复
[1] FALSE FALSE FALSE  TRUE
> table(x) #重复值统计
x
1 3 5 
2 1 1 
> sort(x)
[1] 1 1 3 5

2.3.对两个向量进行的操作

> x = c(1,3,5,1)
> y = c(3,2,5,6)

(1)逻辑比较,生成与x等长的逻辑向量

> x == y
[1] FALSE FALSE  TRUE FALSE
> x %in% y #x中的元素在y中吗
[1] FALSE  TRUE  TRUE FALSE

(2)数学计算

> x + y
[1]  4  5 10  7

(3)连接

> paste(x,y,sep=":")
[1] "1:3" "3:2" "5:5" "1:6"

(4)交集、并集、差集

<img src="https://raw.githubusercontent.com/yhhhygge/img/master/img20200510172723.png" alt="image-20200509142310026" style="zoom:40%;" />

> intersect(x,y)
[1] 3 5
> union(x,y)
[1] 1 3 5 2 6
> setdiff(x,y)#差集;x在前,x里面有,y没有
[1] 1
> setdiff(y,x)#差集;y在前,y里面有,x没有
[1] 2 6

谁在前谁就是老大(setdiff)。

🌟当两个向量长度不一致

> x = c(1,3,5,6,2)
> y = c(3,2,5)

x == y,循环补齐

<img src="https://raw.githubusercontent.com/yhhhygge/img/master/img20200510172729.png" alt="循环补齐" style="zoom:25%;" />

利用循环补齐简化代码

> paste0(rep("gene",3),1:3)
> paste0("gene",1:3)

谁长谁是老大(循环补齐)。

[图片上传失败...(image-70cf21-1589114495296)]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。