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

阿榜的生信笔记10—R语言综合运用2

让我们一起加油,一起学习进步鸭一、apply()隐式循环apply() 函数是一种隐式循环函数,可以在矩阵、数组、数据框等对象上进行操作。...二、两个数据的连接inner_join(x, y) : 返回x和y交集,即两个数据集中有相同值的行。left_join(x, y) : 返回以x为基础的所有行,并将y中的匹配行合并到x中。...解决方法是检查变量名是否拼写正确,或者是否已经正确定义。 如果需要加载变量,则需要将数据导入到R中,可以使用 read.table() 、 read.csv() 等函数加载数据。"...in model.frame.default(formula = y ~ x, data = df) : invalid type (NULL) for variable 'y'"错误这种错误通常是因为使用的数据集中缺少需要的列或者有空值...解决方法是检查数据集中是否缺少需要的列或者是否存在 NA 值。"

72100

「R」apply,lapply,sapply用法探索

本文节选自张丹的《R的极客理想》系列。 1. apply的家族函数 apply函数族是R语言中数据处理的一组核心函数,通过使用apply函数,我们可以实现对数据的循环、分组、过滤、类型控制等操作。...但是,由于在R语言中apply函数与其他语言循环体的处理思路是完全不一样的,所以apply函数族一直是使用者玩不转一类核心函数。...很多R语言新手,写了很多的for循环代码,也不愿意多花点时间把apply函数的使用方法了解清楚,最后把R代码写的跟C似得,我严重鄙视只会写for的R程序员。...apply函数可以对矩阵、数据框、数组(二维、多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数传递的形式给自定义的FUN函数中,并以返回计算结果。...参数列表: X:数组、矩阵、数据框 MARGIN: 按行计算或按按列计算,1表示按行,2表示按列 FUN: 自定义的调用函数 …: 更多参数,可选 比如,对一个矩阵的每一行求和,下面就要用到apply做循环了

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

    社交网络分析的 R 基础:(四)循环与并行

    举个例子,对一个矩阵的行求和,并封装一个函数,使用 for 循环应该是这样: func1 <- function(matrix) { row_sum <- c() for (i in 1...apply() 系列函数本身就是解决数据循环处理的问题,为了面向不同的数据类型,不同的返回值,apply() 函数组成了一个函数族。...一般使用最多的是对矩阵处理的函数 apply() 以及对向量处理的函数 sapply()。 apply() 系列函数[1] apply() apply() 函数用于多维数据的处理,比如矩阵。...对一个矩阵的行求和使用 apply() 函数更简单,但效率上不如 sapply()。...回到上文中“对一个矩阵的行求和”这个问题上,“求和”是一个可重复的任务,矩阵的行数决定了“求和”的次数,对矩阵中某一行向量的求和并不会干扰其他行向量的求和,因此该问题可以进行并行处理。

    1.3K10

    GEO数据挖掘-基于芯片

    2.2.3 options(scipen = 20)scipen 是 scientific penalty 的缩写。它是一个数值,用于影响R在打印数值时选择是否使用科学计数法的倾向。...scipen 的值越大,R越倾向于使用普通的定点数表示法而不是科学计数法。反之,scipen 的值越小(或为负值),R越倾向于使用科学计数法表示数值。...4.2.3 g = names(tail(sort(apply(exp,1,sd)),1000))apply(exp, 1, sd):对表达矩阵 exp 的每一行(即每个基因)计算标准差。...5.2.4 ids = distinct(ids,symbol,.keep_all = T)使用 dplyr 包中的 distinct 函数,从数据框 ids 中移除重复的行,并保留每个 symbol...这一步确保表达矩阵 exp 只包含差异表达基因分析结果中的探针。 rownames(exp) = deg$symbol:将表达矩阵 exp 的行名设置为 deg 数据框中的 symbol 列。

    18210

    R语言中的apply函数族

    很多R语言新手,写了很多的for循环代码,也不愿意多花点时间把apply函数的使用方法了解清楚,最后把R代码写的跟C似得。...apply函数可以对矩阵、数据框、数组(二维、多维),按行或列进行循环计算,对子元素进行迭代,并把子元素以参数传递的形式给自定义的FUN函数中,并返回计算结果。...也可以是自己编写的函数。 ... :FUN中的额外参数。 现在假设我们需要对一个矩阵的每一行求和,那么用apply怎么实现呢?...,那么直接使用lapply就不能达到想要的效果了,lapply会分别循环矩阵中的每个值,而不是按行或按列进行分组计算。...vapply函数 vapply类似于sapply,提供了FUN.VALUE参数,用来控制返回值的行名,这样可以让程序更健壮。

    4.5K52

    R语言 常见函数知识点梳理与解析 | 精选分析

    ) 5、complete.cases( ) 判断对象中是否数据完全 6、grep()找出所数据框中元素所在的列值(仅数据框中) 7、assign()通过变量名的字符串来赋值 8、 split()根据因子变量拆分数据框...这一函数在去除数据框中缺失值时很有用。...t:矩阵转置 cbind:把列合并为矩阵 rbind:把行合并为矩阵 diag:矩阵对角元素向量或生成对角矩阵 aperm:数组转置 nrow, ncol:计算数组的行数和列数 dim:对象的维向量...dimnames:对象的维名 row/colnames:行名或列名 %*%:矩阵乘法 crossprod:矩阵交叉乘积(内积) outer:数组外积 kronecker:数组的Kronecker积 apply...cor:相关阵或协差阵 Contrast:对照矩阵 row:矩阵的行下标集 col:求列下标集 19、逻辑运算 ,=,==,!

    2.3K21

    隐式循环及function函数

    apply()函数 apply()一般用于处理矩阵/数据框,返回通过将函数应用于数组或矩阵的边距而获得的向量或数组或值列表。...基本语法为: apply(X, MARGIN, FUN, ..., simplify = TRUE) X:要处理的数据框/矩阵名 MARGIN:对于矩阵,1表示行,2表示列,c(1,2)表示行和列。...FUN:函数,即对x的每一行/列执行FUN这个函数 simplify:表明是否应简化结果的逻辑,一般默认为 = TRUE 使用的小栗子: #循环处理数据 test<- iris[1:6,1:4] apply...lapply是apply()函数的变种,主要用于处理列表/向量(列表/向量没有行和列的概念,所以会比对矩阵/数据框的操作更简单一些),也更适用于批量读取数据或者处理统计数据 基本语法为: lapply(...Vapply类似于sapply,但它有一个预先指定的返回值类型,因此使用它可能更安全(有时更快)。

    15610

    R语言中 apply 函数详解

    apply函数集来转换R中的数据 介绍 数据操作是机器学习生命周期中最关键的步骤之一。...因此,在Python和R中都有大量的函数和工具可以帮助我们完成这项任务,这一点也不奇怪。 今天,我们将使用R并学习在R中转换数据时使用最广泛的一组“apply”函数。...因此,让我们首先创建一个简单的数值矩阵,从1到20,分布在5行4列中: data <- matrix(c(1:20), nrow = 5 , ncol = 4) data ? 这就是我们矩阵的样子。...这里, X是指我们将对其应用操作的数据集(在本例中是矩阵) MARGIN参数允许我们指定是按行还是按列应用操作 行边距=1 列边距=2 FUN指的是我们想要在X上“应用”的任何用户定义或内置函数 让我们看看计算每行平均数的简单示例...使用tapply()非常容易,因为它会自动从item_cat 向量 中获取唯一的值,并几乎立即对数据应用所需的函数。

    20.5K40

    快速掌握apply函数家族推荐这篇文档

    ❝apply 家族是 R 语言中常用的函数,用于对列表、数组或其他类型的数据进行循环操作。 ❞ apply 家族包括以下几个函数: ❝lapply:用于遍历列表中的每一个元素,并对其执行函数操作。...另外,apply 函数用于对矩阵或数组的行、列或其他维度进行循环操作。...例如,下面的代码使用 apply 函数求出矩阵中每一列的和: # 创建矩阵 x <- matrix(1:9, nrow = 3) # 使用 apply 函数求出矩阵中每一列的和 apply(x, 2,...sum) [1] 6 15 24 ❝上面介绍了apply 家族函数的原理,下面来举几个使用 apply 家族函数处理数据的小例子: ❞ 例子 1:求出矩阵中每一列的最大值 下面的代码使用 apply...函数求出矩阵中每一列的最大值: # 创建矩阵 x <- matrix(1:9, nrow = 3) # 使用 apply 函数求出矩阵中每一列的最大值 apply(x, 2, max) [1] 3

    2.9K30

    R语言学习-矩阵

    矩阵 矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数,R生存矩阵按列存储 注意:向量不能看成只有一行或者一列的矩阵,二者不能混为一谈 矩阵的创建 利用matrix()函数 例如 matrix...使用下标和中括号来选择矩阵中的行或列或元素,矩阵名+中括号,中括号里面写需要的行与列 例如,设置一个矩阵,名字为mymatrix,5行5列 > mymatrix 中括号,可以理解为这一行或列标 > #mymatrix[i,],返回矩阵mymatrix中第i行元素 > mymatrix[3,] [1] 3 8 13 18 23 > #mymatrix...8 第二行 7 9 > #使用函数rownames()设置行名,使用colnames()设置列名 > f2 <- matrix(c(1,3,5,7),2,2) > rownames(...1.使用attributes()函数,若是矩阵返回一个维度,若不是,返回NULL值 > fa 行2列 > attributes(fa) $dim

    10510

    认识向量

    背景 在使用R语言过程中,每一步中都需要关注R语言的数据结构。数据结构是R语言中最重要的内容,也是最难的一部分,学会了这部分之后,R语言就不难了。...直接敲数据集的名字就能够打印出数据集的内容,内置数据集与自己通过文件将数据读入 R 中,存储为变量效果上是一样的。...向量其实是用于存储数值型、字符型或逻辑型数据的一维数组。R 中的向量与解析几何或者物理学中有数值和方向的量不同,R 中的向量是一个集合,即可以是数值的集合也可以是字符串或者逻辑值的集合。...新手经常犯的错误就是忘了使用 c()函数。...向量是一维的,而矩阵是二维的,需要有行和列。矩阵是 R 语言中使用较多的一种数据结构,矩阵分为数值矩阵和字符串矩阵,常用的是数据矩阵,基因的表达数据为数值矩阵。

    54310

    R语言的常用函数速查

    rbind:把行合并为矩阵diag:矩阵对角元素向量或生成对角矩阵aperm:数组转置 nrow, ncol:计算数组的行数和列数dim:对象的维向量 dimnames:对象的维名row/colnames...:行名或列名 %*%:矩阵乘法crossprod:矩阵交叉乘积(内积) outer:数组外积kronecker:数组的Kronecker积 apply:对数组的某些维应用函数tapply:对“不规则”数组应用函数...sweep:计算数组的概括统计量aggregate:计算数据子集的概括统计量 scale:矩阵标准化matplot:对矩阵各列绘图 cor:相关阵或协差阵Contrast:对照矩阵 row:矩阵的行下标集...线性代数 solve:解线性方程组或求逆 eigen:矩阵的特征值分解svd:矩阵的奇异值分解 backsolve:解上三角或下三角方程组chol:Choleski分解 qr:矩阵的QR分解chol2inv...,&,&&,|,||,xor():逻辑运算符logical:生成逻辑向量 all,any:逻辑向量都为真或存在真ifelse():二者择一 match,%in%:查找unique:找出互不相同的元素 which

    2.7K90

    批量的GSEA及基因表达热图可视化

    :1.功能函数包2.数据包3.注释包(芯片基因之间的转换) #此为中的一种,为数据包 data(airway)#加载数据 exprSet=assay(airway)#获取表达矩阵,默认airway获取表达矩阵就是...)[,3]#得出分组信息 tmp=data.frame(group_list)#把group_list向量变为数据框tmp row.names(tmp)=colnames(exprSet) #把tmp的行名改为...exprSet的列名 exprSet=exprSet[apply(exprSet,1,function(x)sum(x>1)>5),] ##分别对数据中每一行的数据进行一个什么运算,1代表行,2代表列...,]#把res排序 head(resOrdered) DEG=as.data.frame(resOrdered)#把差异分析结果变为数据框 DESeq2_DEG=na.omit(DEG)#删除差异分析中缺少值的结果...个基因所在的每一行取出,组合起来为一个新的表达矩阵 n=t(scale(t(dat))) # 'scale'可以对log-ratio数值进行归一化 n[n>2]=2 n[n< -2]= -

    1.2K20

    干货:手把手教你用Python读写CSV、JSON、Excel及解析HTML

    ]] ) 代码最后打印出头10行的房屋价格。...我们使用表达式生成价格的列表。如代码所示,对于列表对象,你可以调用.index(...)方法查找某一元素首次出现的位置。 5. 参考 查阅pandas文档中read_excel的部分。...使用DataFrame对象的.apply(...)方法遍历内部每一行。第一个参数指定了要应用到每行记录上的方法。axis参数的默认值为0。意味着指定的方法会应用到DataFrame的每一列上。...列表的首元素是,尾元素是。对行中每个字段,我们以>的格式封装,并加进字符串列表。...估算缺失值会介绍.fillna (...)方法。 .dropna (...)方法删掉缺少任意字段数据的行(或者列)。

    8.4K20

    R语言函数

    1.初级统计(R_01) x<-(1,2,3,4,5,6) max(x) #最大值 min(x) #最小值 mean(x) #均值 median(x) #中位数 range(x)#返回最小值和最大值 var...(x) #方差 sd(x) #标准差 sum(x) #总和 abs(x)#绝对值 sqrt(x)#平方根 log(16,base=2)# >4 计算16的log值,底数为2 exp(x)#计算向量x中每一个元素的指数...#x[x<-2]改为x[x< -2],注意区分赋值号和小于-2 ####修改向量中的某个/某些元素:取子集+赋值 x #改一个元素 x[4] 中的第4个值改为40 #改多个元素 x...将这些元素筛选出来 7.隐式循环——apply(R_04) apply 处理矩阵或数据框: #apply(X, MARGIN, FUN, …) #其中X是数据框/矩阵名; #MARGIN为1表示行,...为2表示列,FUN是函数 test<- iris[1:6,1:4] apply(test, 2, mean)#求test所有列的平均值 apply(test, 1, sum)#求test所有行的和 7.2

    24420

    R语言基础提升与总结

    ,按列拼接成为一个矩阵 do.call完成批量操作4 表达矩阵画箱线图4.1 表达矩阵的概念基因表达的数据通常使用表达矩阵来表示其中矩阵的行代表某个基因在不同样本(不同处理,或时间点等)中的表达水平列表示某个样本中各个基因的表达水平...转置t把原来的行名变为第一列宽数据变长数据代码实现:set.seed(10086)# 随机种子,让rnorm的结果变固定exp = matrix(rnorm(18),ncol = 6)exp = round...() %>% #行名变为第一列 mutate(group = rep(c("control","treat"),each = 3)) #数据框新增一列#变形的函数 完成宽数据变长数据的操作pdat =...MARGIN,FUN…)X:数据框/矩阵名称MARGIN:取值=1表示行;取值=2表示列FUN:具体函数对X的每一行/每一列进行FUN这个函数testapply(test...1.计算每个基因的方差(每个基因是每一行,方差var)2.每个基因方差排列3.最后1000个数字所对应的基因load("test2.Rdata")##里面保存的数据框名字是testdim(test)apply

    18310

    Day09 生信马拉松-GEO数据挖掘 (中)

    ,三选一,选谁就把第几个逻辑值写成T,另外两个为F。...眼睛数,自己生成--仅适用排列有序,每种分组都在一起 Group = rep(c("Disease","Normal"),each = 10) }else if(T){ # ★★第三种方法,使用字符串处理的函数获取分组.../112-pca-principal-component-analysis-essentials #PCA的不同呈现方式可在上面链接中查找,先用示例数据确保能运行,再根据实际需要进行调参 # PCA...rownames(annotation_col) = colnames(n) #写行的注释信息 pheatmap(n, show_colnames =F, #不显示行名...样本名为列的数据框,就需要t()转置 cor()函数求相关系数的时候也是按列计算,如果计算行之间的相关系数也需要对矩阵进行t()转置 参考资料:scale函数对矩阵归一化是按行归一化,还是按列归一化?

    32210

    如何使用R的sweep函数对表达矩阵进行标准化

    如下图所示 除了中位数标准化之外,我们还可以使用z-score的方法来对表达谱数据进行标准化: z-score=(表达量-均值)/标准差 那么下面小编就给大家演示一下如何使用前面讲到的☞R中的sweep...函数,使用z-score的方法来对表达谱矩阵进行标准化 #为了保证随机数保持一致,这里设置一下种子序列 set.seed(123) #随机生成100个数,构造一个10X10的矩阵 data=matrix...(runif(100,1,10),nrow=10) #设置行名是gene1到gene10 rownames(data)=paste0("gene",1:10) #设置列明是sample1到sample10...colnames(data)=paste0("sample",1:10) #计算每一行的均值 rowmean=apply(data,1,mean) #计算每一行的标准差 rowsd=apply(data...,1,sd) #每一行基因表达值减去这一行的均值 data1=sweep(data,1,rowmean) #每一行基因表达值除以这一行的标准差 data2=sweep(data1,1,rowsd,'/'

    1.3K10
    领券