美文网首页
1-5-1/2/3向量精讲1-7-1数据框结构介绍

1-5-1/2/3向量精讲1-7-1数据框结构介绍

作者: 小胡同学ime | 来源:发表于2021-10-12 08:38 被阅读0次
对单个向量进行的操作
  1. 赋值给一个变量名 用 <- 或者=
x <- c(1,5,4,8)    ### 赋值符号  Alt + -

赋值和输出一起执行

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

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

向量首尾相连

> x=1:5
> y=2:6
> c(x,y)
 [1] 1 2 3 4 5 2 3 4 5 6
  1. 简单数学计算
x=c(1,3,5) 
> x + 1    # [1] 2 4 6

  1. 根据某条件进行判断,生成逻辑值向量
x > 3  # [1] FALSE FALSE  TRUE

  1. 初级统计
var(x)  # 方差
sd(x) # 标准差
sum(x) # 总和
length(x) # 长度(向量元素个数)
unique(x) # 去重复,重复值只保留第一次出现,小于x长度的向量
duplicated(x) # 判断元素是否在前面出现过, 与X长度相等的逻辑值向量
table(x) # 重复值统计,共有哪几种元素,并分别出现多少次
sort(x) #从小到大排序

对两个向量的操作
x = c(1,3,5,1)
y = c(3,2,5,6)

  1. 逻辑比较,生成等长的逻辑向量
x == y  #元素比较位置一一对应
# [1] FALSE FALSE  TRUE FALSE

x %in% y   # x的元素是否在y中,元素与y全部元素比较
# [1] FALSE  TRUE  TRUE FALSE

  1. 数学计算
x+y

  1. 连接 生成一个字符串型数据
paste(x ,y, sep = ":")##中间连接符号默认为空格
# [1] "1:3" "3:2" "5:5" "1:6"
paste0(x,y)#中间连接符号默认没有
x == y 与 x %in% y 的区别
image
  1. 交集、并集、差集
intersect(x,y)   # 取交集去重,x、y里面都有的元素
union(x,y) # 取并集去重,x、y里面的元素(去重复)
setdiff(x,y) # 取差集,在x里面有,在y里面没有
setdiff(y, x) # 取差集,在y里面有,在x里面没有

x = c(1,3,5,1)
y = c(3,2,5,6)
> intersect(x,y)
[1] 3 5
> union(x,y)
[1] 1 3 5 2 6
> setdiff(x,y)
[1] 1
> setdiff(y,x)
[1] 2 6

当两个向量长度不一致

理解一下循环补齐
短的补齐,谁长谁说了算

image
利用循环补齐简化代码
paste0(rep("gene",3), 1:3)
paste0("gene", 1:3)

向量取子集

[]:将TRUE对应的值挑选出来,FALSE舍弃

image
> x <- 8:12
> #根据逻辑值取子集(自动取T)
> x[x==10]
[1] 10
> x[x<12]
[1]  8  9 10 11
> x[x %in% c(9,13)]
[1] 9
> #根据位置取子集
> x[4]
[1] 11
> x[2:4]
[1]  9 10 11
> x[c(1,5)]#多个不连续
[1]  8 12
> x[-4]#去除第四个元素
[1]  8  9 10 12
> x[-(2:4)]#去除第二到第四个元素
[1]  8 12
x[-(length(x)-1)]# 去掉向量倒数第2个向量

[] 括号内的内容:

  1. 可以是一个与 x 等长的逻辑向量

  2. 能单独运行成功

    image
修改向量的元素

将符合某种逻辑条件的元素进行修改

> x[4] <- 40
> x
[1]  8  9 10 40 12
> x[x>10] <- 10
> x
[1]  8  9 10 10 10

简单向量作图
k1 <- rnorm(12)
k2 <- rep(c("a","b","c","d"), each = 3)
plot(k1)#未指定横坐标,自动按元素位置为横坐标,k1为纵坐标
boxplot(k1~k2)#指定k1为纵坐标,k2为横坐标

向量匹配排序 - match
match(x,y)         #x中对应y集元素坐标
y[match(x,y)]     #根据x,调整y的顺序

调整谁的顺序就把谁写在后面

image

数据结构

  1. Vector 向量:一维
    只有长度,常见生成向量的函数
>c(1,2,3,4,5,6)
>sample(1:100,7)    #从1-100里面随机生成7个数字
  1. matrix 矩阵:二维(拥有行列)
    所有的列数据类型相同,两个维度
    函数生成矩阵
matrix(x, nrow = 7)  #把X排成矩阵,按照行/列标准排开(一个标准就行)
image.png

多个向量合成矩阵,要求向量长度相等,数据类型一致

x1 <- c(1,2,3)
x2 <- c(2,3,4)
x3 <- c(3,4,5)
cbind(x1, x2, x3)

  1. data.frame 数据框
    多个长度相同、数据类型可以不同的向量按列组合
>y1=sample(1:100,7);y1
[1]36 64 58 56 24 21 89 
>y2=letters[1:7]
[1]"a" "b" "c" "d" "e" "f" "g"
>y3=sample(1:10,7)
[1]1 5 9 2 4 8 3
>data.frame(y1,y2,y3)
  1. list 列表
    长度可以不同、数据类型可以不同
    没有行和列的概念,可以有多级元素

数据框

数据框来源

  1. 在R中新建
  2. 由已知数据转换或处理得到
  3. 从文件中读取
  4. 内置数据集
df <- data.frame(gene =  c("gene1","gene2","gene3"), # gene 是 列名, = 之后是列的内容(向量),内容用逗号分隔
                 sam  = c("sample1","sample2","sample3"),
                 exp  = c(32,34,45)) 
df <- data.frame(gene  = paste0("gene",1:3),
                 sam   = paste0("sample",1:3),
                 exp   = c(32,34,45))
image.png

读取文件得到数据框

df2 <- read.csv("gene.csv")#读取文件已经在工作目录下

数据框属性描述
dim(df)    #得到数据框的行数及列数
nrow(df)/ncol(df)#行数目/列数目
rownames(df)#行名
colnames(df)#列名
数据框取子集(向量取子集-位置,数据框取子集-坐标)
单个元素df [2,2]
单行  df [2,]    多行df [1:5,]    df [c(1,5,9),]
单列  df [,2]
行列双选 df [c(1,3),1:3]
根据行名or列名取子集
df [,"exp"]    df [,c("exp","gene","speidhf")]    如果数据太多,避免出错
>nn=c("exp","gene","speidhf") 
>df [,nn]  
df [,ncol(df)]  取df最后一列

提取列的常用操作

df$+tab(弹出所有列名)→生成标准向量
image.png

数据框的修改

*改数据
改一个格   df [2,2]
改一整列   df $ 列名<-c(1,2,5)
取子集 $/ [ ] +赋值操作

*修改行名
改全部行名  rownames(df)<-c("d1","d2","d3","d4")
改一个行名  rownames(df)[2]<-"a2"    #改第二行名字为“a2”

相关文章

  • 1-5-1/2/3向量精讲1-7-1数据框结构介绍

    对单个向量进行的操作 赋值给一个变量名 用 <- 或者= 赋值和输出一起执行 向量首尾相连 简单数学计算 根据某条...

  • R语言数据结构-数据框&矩阵&列表

    R语言数据结构主要有以下四种: 1.向量2.数据框3.矩阵4.列表 四种数据结构,重点掌握向量和数据框 Vecto...

  • 学习小组Day5笔记--Drku

    今天主要是关于向量、数据框、向量及数据框的提取介绍。 Part1 一 1 生成向量 一 2 提取向量 Part2 ...

  • 学习小组Day3

    内容 1.建立 向量: 数据框: 2.提取子集 向量: 数据框: 3.数据框命名 4.导出、保存、重加载 作业:s...

  • R语言数据结构-向量

    R语言数据结构主要有以下四种: 1.向量2.数据框3.矩阵4.列表 最好理解的是数据框,数据框约等于“表格” 第一...

  • 学习小组Day5笔记—我爱一朵向阳花

    R-数据结构 数据类型包括: 其中,最需要掌握的是向量和数据框(即表格)。 向量 1、向量写法(赋值给变量) 2、...

  • 初识R语言—数据框的操作

    R的数据结构 1、向量vector2、矩阵matrix3、数组array4、数据框 dataframe5、列表 数...

  • Day5 陈海影

    数据结构 向量,数组,矩阵,数据框 向量部分 1.区别向量变量定量2.从向量中取值(根据元素位置,值,逻辑?)(1...

  • 生信星球学习小组第80期 Day5笔记--ZJUSKY

    数据结构 R中的数据结构主要分为以下五大类,向量,矩阵,数组,数据框和列表,其中最常用的是向量和数据框。 1.向量...

  • 03-02

    PPT 01 向量 3-2-1向量精讲 1. 逻辑型数据 1.比较运算的结果是逻辑值 ,<,<=,>=,==(是否...

网友评论

      本文标题:1-5-1/2/3向量精讲1-7-1数据框结构介绍

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