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

Day5:R语言课程(数据框、矩阵、列表取子集)

学习目标 演示如何从现有的数据结构中取子集,合并及创建新数据集。 导出数据表和图以供在R环境以外使用。...1.数据框 数据框(和矩阵)有2个维度(行和列),要想从中提取部分特定的数据,就需要指定“坐标”。和向量一样,使用方括号,但是需要两个索引。在方括号内,首先是行号,然后是列号(二者用逗号分隔)。...---- 注意:有更简单的方法可以使用逻辑表达式对数据帧进行子集化,包括filter()和subset()函数。这些函数将返回逻辑表达式为TRUE的数据帧的行,允许我们在一个步骤中对数据进行子集化。...write.table也是常用的导出函数,允许用户指定要使用的分隔符。此函数通常用于创建制表符分隔的文件。 注意:有时在将具有行名称的数据框写入文件时,列名称将从行名称列开始对齐。...为避免这种情况,可以在导出文件时设置参数col.names = NA,以确保所有列名称都与正确的列值对齐。 将向量写入文件需要与数据框的函数不同。

17.8K30

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

data.frame生成指定数据框的列名及列的内容,如代码所示,此时列名不需添加"",df1为变量名,格式为列名=列的向量*matrix矩阵与向量一样只允许同一种数据类型,否则会被转换,可以理解为二维的向量...a,file="b.xlsx") #也可以按工作簿导出数据框属性(包括维度、行名、列名)dim为维度,对数据框使用,输出(行数,列数),nrow输出行数,ncol输出列数dim(df1)nrow(df1...df1列名的向量取子集*输入df1$后按tab键可以输出待选的列名mean(df1$score) #对取出的向量可以进行运算坐标取子集df1[2,2] #取出(行数,列数)的单元格df1[2,] #取出第二行的所有内容...意义同向量列名或行名取子集df1[,"gene"] #取出列名为"gene"的单元格df1[,c('gene','change')] #取出列名为"gene"及"change"的单元格逻辑值取子集df1...#取子集方法同数据框t(m) #转置行与列,数据框转置后为矩阵as.data.frame(m) #将矩阵转换为数据框列表列表内有多个数据框或矩阵,可通过list函数将其组成一个列表l <- list(m1

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

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

    df1) #输出行名 colnames(df1) #输出列名 数据框取子集 数据主要操作为按列取子集,取出来的为向量;按行去子集取出的仍为数据框。...#4.数据框取子集 df1$gene #删掉score,按tab键试试 mean(df1$score) ## 按坐标 df1[2,2] # 取第二行第二列 df1[2,] #取第二行 df1[,2]...#取第二列 df1[c(1,3),1:2] # 取第一行和第三行以及第一列和第二列,注意逗号前后不同的向量,分别表示取得行和列!!!...<- test[1:3,] a a[,c(1,3,2)] 图片 矩阵的新建和取子集 #矩阵的新建和取子集 m <- matrix(1:9, nrow = 3) colnames(m) 列名 m m[2,] #矩阵取子集不支持使用$ m[,1] m[2,3] m[2:3,1:2] m #矩阵中的重要函数 t(m) #行列的转置,行变列,列变行,行名和列名都跟着变换

    1.8K20

    Jelys Note之生信入门class3

    df1中的数据,c(1,3)是取第一行和第三行的数据,逗号表示维度的分割,1:2是取第一列与第二列的数据 eg....取出来的是符合条件的子集】 筛选score > 0的基因 > df1[df1$score > 0,]内容写在逗号前取子集是按行来取子集 取df1数据框中score那一列大于0的df1值如第一行、第二行...只修改某一列名:colnames(变量)[第几列]=修改值“” > colnames(df1)[2] <- "CHANGE" (5)两个数据框的连接【智能的连接】 【使用:差异分析结果,分析基因的结果,...【当默认的设置不符合你的预期,可以在作者允许的范围内自定义】 (9)列表新建和取子集 #list生成列表、矩阵的函数【包容性很强!】...(10)从列表中提取矩阵 【矩阵】l[[2]]只把矩阵提取出来!

    64310

    python单细胞学习笔记-day4

    01:20:19 numpy 矩阵:没有行名和列名 numpy 矩阵:推荐只存放一种数据类型的数据,但可允许多种数据类型 2.1 新建矩阵 使用numpy模块中的array()函数 2.2 取子集 使用下标和切片法...: 2.3 矩阵和数据转换 矩阵转为数据框,可以加上行名和列名 数据框转为矩阵,有三种方法。...,然后传递给pandas中的DataFrame()函数 可以使用index参数指定行名 方式2:从csv文件读取 import pandas as pd df2 = pd.read_csv("day3...df1.gene.tolist() # series 转为list df1[['gene']] # 返回数据框 提取多列:在方括号里面写有列名组成的列表 3.3 提取行和列 .iloc:基于整数位置...# 以下方式返回的都是series print(df1.iloc[0]) print(df1.iloc[0,]) print(df1.iloc[0,:]) 提取多行多列: .loc() 按照行名列名取子集

    5300

    生信技能树-R语言-day3

    ” , “列名字” ]按照逻辑值:数据框$> df1[2,2][1] "up"> df1[2,] # 逗号的左边的数字,是取第二行 gene change score2 gene2 up...3> df1[,2] # 逗号的右边的数字,取第二列[1] "up" "up" "down" "down" > df1[c(1,3),1:2] # 逗号前的第一和第三行,逗号后的第一列到第二列...[第几行 ,第几列] = 赋值修改后的数据修改一个列的数据文件名$列名 = c()赋值修改后的向量(先提取一个列$,再修改)增加一列的数据文件名$列名 = c()赋值修改后的向量($提取的是一个全新的列名...,之前不存在的)修改行名rownames() = c()赋值修改后的向量 (行名都是一样的)修改其中一列的列名colnames(文件名)[第几列]= “”赋值列的名字(每一列名字都不一样)两个数据框的连接...,y]矩阵的转置和转换 t()转置(将行和列互转,要先给列改名,不然转置没有区别> colnames(m) 列名 不支持$取> m a b

    7610

    R基础-3

    数据结构 3 数据框、矩阵和列表 之前学过的,Vector向量是 一维的 数据框、矩阵和列表如下: 1)现在学“表格” 二维:二维有两个:(1)matix 矩阵 —— 二维,只允许一种数据类型。...3.2.2 从文件中读取 >df2<- read.csv("gene.csv") 3.3 数据框属性(数据框严格区分 “行” 和 “列”) #写上注释 > dim(df1) #维度 > nrow...(df1) #行 > ncol(df1) # 列 > rownames(df1) #行名 > colnames(df1) #列名 3.4 数据框取子集:$ 、[ ] 、按照名字、按条件(逻辑值...(df1)行名 > colnames(df1)[2] 列名,比如修改第二列的列名,...$取列 / [行,列]            行列名/行列号、逻辑值 修改/新增                 取子集+赋值 两表相连                  merge 矩阵新建和取子集

    91550

    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...q【【2】】 names函数获取元素名字 names(m1) names(test1) names 函数不仅仅能对列表使用,还可以对数据框使用(返回列名)。

    1.3K30

    数据框、矩阵和列表20230202

    一、向量、矩阵、数据框和列表的区别 1)向量:一维 2)矩阵:二维,只允许一种数据类型 3)数据框:二维,每列只允许一种数据类型 4)列表:容纳各种数据类型 ps:数据类型的判断:clss()...(3)数据框的属性 获得行数 nrow() 获得列数 ncol() 获得行名 rownames() 获得列名 colnames() (4)数据框取子集 >数据框名称 $ 列名 eg. df1$...1~2列) ‼️使用取子集的方法筛选 eg:筛选score大于0的行 > df1[df1$score>0,] gene change score 1 gene1 up...5 2 gene2 up 3 (先按逻辑取子集,T对应的行留下,F对应的删掉) (5)数据框修改 1、改一个格 > df1[3,3]<-5 > df1 gene...) 4、修改行名和列名 行名修改:rownames(数据框的名称)<-c() #重新赋值 名列名修改:colnames(数据框的名称)<-c() 改一个行名或列名: colnames(数据框名称)[列数

    1.3K132

    生信入门马拉松之R语言基础-数据框、函数(Day 3)

    (df1)#查看行名 ## [1] "1" "2" "3" "4" colnames(df1)#查看列名 ## [1] "gene" "change" "score" 数据框取子集 df1$score...按坐标取子集 按名字取子集 df1$score# $取子集 ## [1] 5 3 -2 -4 df1[2,2]#取df1第二行第二列的元素,单取一行是数据框。...列名有则改之,无则新增 两个数据框连接-merge() 数据框中有相同的列名,同时该列有交集。...6 9 思考一下数据转化代码和输出结果的区别 m矩阵转变数据框后查看m的数据类型 t(m)#给矩阵转置,行变为列,列变为行 ## [,1] [,2] [,3] ## a 1 2 3...## 3 3 6 9 is.data.frame(m) ## [1] FALSE m矩阵转变数据框后赋值给aa后查看aa的数据类型 t(m)#给矩阵转置,行变为列,列变为行 ## [,1] [,2

    25510

    生信技能树DAY 3 R语言入门

    % 与 intersect取交集 的区别:取交集会自动去除重复值 使用负号注意不要写成赋值符号 # 生成10个随机数: rnorm(n=10,mean=0,sd=18),用向量取子集的方法,取出其中小于...只能有一种数据 是特殊的数据框 | 数据框 一列只能有一种数据 | 列表 没有限制 | 区分矩阵和数据框:根据生成它的函数 或 class() is()族函数 重点:数据框 1.数据框来源 (1)用代码新建...第二行第二列数据 ## [1] "up" df1[2,]# 第二行 带行名列名,还是数据框 ## gene change score ## 2 gene2 up 3 df1[,2...]# 第二列 不带行名列名,是向量 ## [1] "up" "up" "down" "down" df1[c(1,3),1:2] # 多行多列 数据框 ## gene change ##...rownames(df1) <- c("r1","r2","r3","r4") #只修改某一行/列的名 colnames(df1)[2] 第二列的列名,就是修改列名这个向量的第二个元素

    27410

    Day08 生信马拉松-GEO数据挖掘 (上)

    文章所有内容均来自生信技能树“生信马拉松-数据挖掘班”授课内容个人整理,如需转载请注明出处。 1....为什么要做数据挖掘 1.1 挖掘的数据从哪里来 图片 1.2 有什么可挖掘的数据类型 基因表达芯片、转录组、单细胞、表观遗传、突变…… 1.3 如何筛选基因 图片 2....中点最前面的三角符号查看 4.2 GSE中数据的提取 4.2.1 提取表达矩阵exp exp 子集的函数 dim(exp) #看行、列数量 若出现异常...后两种情况一般弃用,非要用的话需要处理原始数据(不推荐新手操作) 附:不同格式原始数据的处理方法链接 4.2.2 提取临床信息 pd <- pData(eSet) 4.2.3 让exp的列名与pd的行名顺序完全一致...= pd[k,] exp = exp[,k] identical(rownames(pd),colnames(exp)) #再次确认临床数据的行基因数据的列名是否一致 dim(exp) dim(pd

    59331

    数据挖掘第三天(数据结构)

    矩阵只允许一种数据类型,数据框的每一列只允许一种数据类型 一、数据框来源 (1)用代码新建 图片 (2)由已有数据转换或处理得到 (3)读取表格文件 (4)R语言内置数据 二、数据框取子集 用“$”符号...,用“【】”,括号里填写行列数,先行后列 df1[2,2]#表示取第2行第2列 [1] "up" 按逻辑值取,数据框按逻辑值取子集,TRUE对应的行/列留下,FALSE对应的行.../列丢掉 #筛选score > 0的行,筛选的是行,是score>0的行 df1$score #先筛选df1数据框里score这一列 [1] 5 3 -2 -4 df1$score>0 #返回的是逻辑值...#最后一行用nrow代替 [1] 5 3 -2 -4, 数据框修改:取值+赋值 修改行名和列名,其实就是修改向量,要修改全部行名就给全部赋值,如果要改一个列名就给取子集赋值。...如:修改第二列的列名,就是修改【列名这个向量】的第二个元素 rownames(df1) <- c("r1","r2","r3","r4")#修改行名 df1 gene change score

    44020

    【生信技能树培训笔记】R语言基础(20230112更新)

    详见帮助文档(二)矩阵(matrix)矩阵是二维的。只允许一种数据类型。Tips: 判断数据结构根据生成他的函数来判断用函数class或is族函数来判断I.新建矩阵和取子集矩阵取子集,不支持$符号。...a b c #由于加了列名,所以取出的行,会带上对应的列名一起输出2 5 8 #取第1列> m[,1][1] 1 2 3#取第2行第3列的数值,同样会带上对应的列名。...#第二种方式是不可以的,因为第二种方式首先提取出gene这一列(df1$gene)已经是向量了,再取向量子集,仍然是向量。...重点与Tips:数据框按照逻辑值取子集,TRUE对应的行/列留下,FALSE对应的行/列丢掉。用于取子集的逻辑值向量,与原集对应即可,不必一定由原集生成。...如上例中,取出的子集是矩阵。若用1个中括号,取出来的子集数据结构仍然是列表,内容虽然一致。

    4.1K51

    2023.4生信马拉松day3-数据结构

    -数据框二维数据;约等于表格 但是:列有要求(同一列只允许同一种数据类型);不是文件(可以导出来成为一个文件);数据框单独拿出的一列是向量,视为一个整体;-矩阵二维数据;同一列同一行都只允许一种数据类型...跟我念三遍:row是横排成行;colum是纵队为列;rownames(df1) #看所有行名colnames(df1) #看所有列名3.数据框取子集-(1)按列名取列——【最重要】df1$score...df1[,2] #取出来的列是向量df1[2] #不加逗号,可以取出列,并保留其数据框属性df1[c(1,3),1:2] #取第一行 第三行的前两个数(会继承行名、列名)#小tips:读懂error...= "NAME")6.矩阵#新建矩阵m 列名colnames(m) 的子集——注意矩阵中不能使用$进行取子集...as.data.frame(m)之后才能真的把m变成数据框#用矩阵画热图pheatmap::pheatmap(m) #默认设置-把相似的行和相似的列聚类pheatmap::pheatmap(m,cluster_cols

    1.4K00
    领券