首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【数据结构】数组和字符串(八):稀疏矩阵的链接存储:十字链表的创建、插入元素、遍历打印(按行、按列、打印矩阵)、销毁

4.2.1 矩阵的数组表示 【数据结构】数组和字符串(一):矩阵的数组表示 4.2.2 特殊矩阵的压缩存储   矩阵是以按行优先次序将所有矩阵元素存放在一个一维数组中。...传统的按行优先次序存储方法会浪费大量空间来存储零元素,因此采用压缩存储的方法更为合适。常见的压缩存储方法有:压缩稠密行(CSR)、压缩稠密列(CSC)、坐标列表(COO)等。 a....由于行和列都是循环链表,行表头节点 BASEROW[i] 中的 LEFT 指针循环地链接到该行最右边的非零元素,列表头节点 BASECOL[j] 中的 UP 指针循环地链接到该列最下边的非零元素。...分配行表头节点数组的内存,并将每个元素初始化为NULL。 分配列表头节点数组的内存,并将每个元素初始化为NULL。 返回指向创建的稀疏矩阵的指针。 2....释放列表头节点数组的内存。 释放稀疏矩阵结构体的内存。 3.

24210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    R语言-03数据框、矩阵和列表

    #读取"gene.csv"文件,赋值df2 3.数据框属性 4.数据框取子集 df1$gene #"$"前是数据框名称 后是列名;提取该列的向量 #按名字取子集 df1 行,列 图片 5.数据框修改...取子集,赋值 #改行名和列名 rownames(df1) 行名 #只修改某一行/列的名 colnames(df1){2} <- "CHANGE..." #修改一个列名 6.两个数据框的连接 按照共同的列名取交集,后连接 两个数据框列中有交集时既可以使用,自动连接 矩阵新建和取子集 矩阵画热图 pheatmap::pheatmap(m) #热图结果默认聚类...pheatmap::pheatmap(m,cluster_cols = F,cluster_rows = F) #修改默认聚类 列表新建和取子集(列表可装万物) x[1] x$m1 #列表取子集 元素的...“名字”-names() 后置的难点 数据框按照逻辑值取子集 #将逻辑值赋值给k,按逻辑值在df1中取子集**实战中会经常遇到 删除变量 数据结构总结 以上来源,生信技能树

    22200

    R语言笔记-2

    (df) #查看行名 colnames(df) #查看列名 输出结果: 图片 图片 数据框的操作 #数据框取子集 df$change #按列名取一列,返回一个向量 df[,1] #按列号取一列,返回一个向量...df[1,1] #按坐标取一格 df[1,] #按行号取一行,返回一个数据框 df[c(1,3),1:2] #按坐标范围取多格,返回一个数据框 输出结果: 图片 图片 图片 #数据框的修改 df$score...(df)[1] = "genes" #修改列名 df #数据框取子集进阶 df[df$score > 4,] #提取出score>4的行 df$gene[df$score>4] #提取出score>4的基因...= 3)) l #列表取子集 l[[2]] #列表取子集需用[[]] l$m 输出结果: 图片 向量、列表中元素的名字 v = c(1,2,3,4) names(v) = c("a","b","c",..."d") names(l) = c("a","b","c") v l v[["a"]] #向量利用元素名字取子集 l[["a"]] #列表利用元素名字取子集 输出结果: 图片 变量的删除 删除一个变量

    53600

    3.9生信

    数据框取子集 a.$ df1$gene #删掉“gene”,按tab键,可以提示出表格的全部列名 小技巧:在今后把 df1$gene 看作一个整体,是一个向量,这样不容易产生困惑。...","r2","r3","r4") 修改行名 d.只修改某一行/列的名 colnames(df1)【2】 = "CHANGE" 将第二列的名字改为CHANGE e.两个数据框的连接merge merge...all.x = all, all.y = all,“不放弃每一个人”,不舍弃无法合并的内容 图片 矩阵 取子集:不支持$ 图片 新建矩阵: m = matrix(1:9, nrow = 3) colnames...(m) = c("a","b","c") #加列名 rownames(m) = c("q","w","e") #加行名 矩阵的转置和转换: 转置:t(m) 行变列,列变行 转换:as.data.frame...(m) 转换为数据框 列表 列表新建和取子集 新建 q = list(m1 = matrix(1:9, nrow = 3), m2 = matrix(2:9, nrow = 2)) 取子集 如果有

    1.3K30

    数据框、矩阵和列表20230202

    一、向量、矩阵、数据框和列表的区别 1)向量:一维 2)矩阵:二维,只允许一种数据类型 3)数据框:二维,每列只允许一种数据类型 4)列表:容纳各种数据类型 ps:数据类型的判断:clss()...(3)数据框的属性 获得行数 nrow() 获得列数 ncol() 获得行名 rownames() 获得列名 colnames() (4)数据框取子集 >数据框名称 $ 列名 eg. df1$...gene 图片 #按坐标 df1[2,2] 取出一个格子 #按行....) 4、修改行名和列名 行名修改:rownames(数据框的名称)<-c() #重新赋值 名列名修改:colnames(数据框的名称)<-c() 改一个行名或列名: colnames(数据框名称)[列数...7 8 9 (3)矩阵和数据框的转化 as.data.frame() as.matrix() 最后用class() 明确一下数据类型 (4)矩阵画热图 图片 四、列表 (1)列表的新建

    1.3K132

    从零开始的异世界生信学习 R语言部分 02 数据结构之数据框、矩阵、列表

    colnames(df1) #输出列名 数据框取子集 数据主要操作为按列取子集,取出来的为向量;按行去子集取出的仍为数据框。...#4.数据框取子集 df1$gene #删掉score,按tab键试试 mean(df1$score) ## 按坐标 df1[2,2] # 取第二行第二列 df1[2,] #取第二行 df1[,2]...<- test[1:3,] a a[,c(1,3,2)] 图片 矩阵的新建和取子集 #矩阵的新建和取子集 m <- matrix(1:9, nrow = 3) colnames(m) <- c("a"...,"b","c") #加列名 m m[2,] #矩阵取子集不支持使用$ m[,1] m[2,3] m[2:3,1:2] m #矩阵中的重要函数 t(m) #行列的转置,行变列,列变行,行名和列名都跟着变换...= matrix(1:9, nrow = 3), m2 = matrix(2:9, nrow = 2)) l l[[2]] #列表取子集 l$m1 #列表中的元素有名字,可以用

    1.8K20

    R语言 数据框、矩阵、列表的创建、修改、导出

    函数可以避免此前的错误a行名,且其会有一个data.table的数据结构多出来,可以设置data.table...df1列名的向量取子集*输入df1$后按tab键可以输出待选的列名mean(df1$score) #对取出的向量可以进行运算坐标取子集df1[2,2] #取出(行数,列数)的单元格df1[2,] #取出第二行的所有内容...意义同向量列名或行名取子集df1[,"gene"] #取出列名为"gene"的单元格df1[,c('gene','change')] #取出列名为"gene"及"change"的单元格逻辑值取子集df1...= ls())load(file = "soft.Rdata") #使Rdata中的向量出现在环境内,本身有名称,无需赋值矩阵和列表矩阵矩阵内所有元素数据类型必须相同*警惕因数据类型不同导致矩阵强制转换引起报错...#取子集方法同数据框t(m) #转置行与列,数据框转置后为矩阵as.data.frame(m) #将矩阵转换为数据框列表列表内有多个数据框或矩阵,可通过list函数将其组成一个列表l <- list(m1

    7.9K00

    阿榜的生信笔记3

    ()读取行数、ncol()读取列数、rownames()读取行名、colnames()读取列名 3、数据框取子集 ①、$:取数据框中的某一项 #4.数据框取子集 df1$gene mean(df1$..."r4") #只修改某一行/列的名 colnames(df1)[2] <- "CHANGE" 6、数据框的连接 我们如何将这两个数据框连接起来呢?...: 二、矩阵 ①、新建矩阵和取子集 ##### 矩阵和列表 m <- matrix(1:9, nrow = 3) colnames(m) <- c("a","b","c") #加列名 m m[2,] m...[,1] m[2,3] m[2:3,1:2] ②、矩阵的转置和转换 如上图所示,colnames()行和列互相转换,as.data.frame()将矩阵转换为数据框...大家再坚持坚持,还有列表一个知识点了? 三、列表 ①、列表新建和取子集 注意:只有列表有[[]]方法取子集。

    88200

    R基础-3

    数据结构 3 数据框、矩阵和列表 之前学过的,Vector向量是 一维的 数据框、矩阵和列表如下: 1)现在学“表格” 二维:二维有两个:(1)matix 矩阵 —— 二维,只允许一种数据类型。...(df1) #行 > ncol(df1) # 列 > rownames(df1) #行名 > colnames(df1) #列名 3.4 数据框取子集:$ 、[ ] 、按照名字、按条件(逻辑值...但是 $ 自动补齐不可以 >df1[,"gene"] > df1[,c("gene","change")] #按条件(逻辑值) 挑选score>0 的行 > df1[df1$score>0,] #这是按照行取的...) > df1 #加一列 >df1$p.value的名字之前的里面没有 >df1 #行名和列名的修改,也就是向量的修改 >rownames...$取列 / [行,列]            行列名/行列号、逻辑值 修改/新增                 取子集+赋值 两表相连                  merge 矩阵新建和取子集

    91550

    R3数据结构和文件读取

    x的下标组成的向量,x[2:4],x[c(1,5)],反选x[-4]#去掉第四个位置x[-(2:4)]#去掉234的位置(3)按名字#修改向量中的某个/某些元素:取子集+赋值,改一个元素x[4]按TAB键导入文件名,不要手动输入)# (3)读取表格文件view,dim,nrow,ncol,rownames,colnames,修改和取子集# (4)R语言内置数据...#只修改某一行/列的名colnames(df1)[2] 子集1$一次只能取1列,2按坐标,名字(一次可以取多列),逻辑df1$gene #删掉score,按tab键取文件...9l[[2]]#列表取子集,数据类型是矩阵,两个[[]]/$## [,1] [,2] [,3] [,4]## [1,] 2 4 6 8## [2,] 3 5...= 1)#尝试将第一列设置行名但失败,因为有重复的字符(a,a,b,b)## Error in read.table(file = file, header = header, sep = sep,

    2.8K00
    领券