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

R语言中 apply 函数详解

tapply mapply 设置上下文 我首先通过使用简单数据集介绍上面的每个函数是如何工作,然后我们将使用一个真实数据集来使用这些函数。...lapply()是list apply缩写,可以对列表或向量使用lapply函数。无论是一个向量列表还是一个简单向量,lappy()都可以在这两个向量上使用。...由于我们现在处理是向量/列表lapply函数也不需要MARGIN参数。也就是说,lapply返回类型也是一个列表。...我创建了一个简单表,告诉我们返回类型: 返回值 每个元素长度 输出 列表 1个 向量 列表 > 1并且长度相同 矩阵 列表 > 1,且长度可变 列表 我们看到上述所有场景示例: 场景1...mapply函数最好用例子来解释——所以让我们先使用它,然后再尝试理解它是如何工作。 首先,让我们看一个通常不以2个列表或2个向量作为参数函数,例如max函数

20.1K40

R语言中批处理函数

apply族函数分别有apply函数,tapply函数lapply函数,mapply函数。每一个函数都有自己特点,在处理不同类型数据可以选用相对应函数。...apply族函数分别有apply函数,tapply函数lapply函数,mapply函数。每一个函数都有自己特点,在处理不同类型数据可以选用相对应函数。...1.apply函数 apply函数只能用于处理矩阵类型数据,也就是说所有的数据必须是同一类型。因此要使用apply函数的话,需要将数据类型转换成矩阵类型。...其中参数na.rm=TRUE,可以忽略所用NA值 ? 2.lapply和sapply函数 lapply和sapply函数可以用于处理列表数据和向量数据(vector/list)。...lapply函数得到处理得到数据类型是列表,而sapply函数得到处理数据类型是向量。这两个函数除了在返回值类型不同外,其他方面基本完全一样。 ? ?

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

R语言︱数据分组统计函数族——apply族用法与心得

lapply使用格式为: lapply(X, FUN, ...) lapply返回值是和一个和X有相同长度list对象, 这个list对象中每个元素是函数FUN应用到X一个元素。...函数sapply是函数lapply一个特殊情形,对一些参数值进行了一些限定,其使用格式为: sapply(X, FUN,..., simplify = TRUE, USE.NAMES = TRUE)...mapply 函数mapply是函数sapply变形版,mapply 函数 FUN 依次应用每一个参数一个元素、第二个元素、第三个元素上。...必须是命名,不能是简写。默认值是TRUE,若合适将会返回一个向量或者矩阵。如果simplify=”array”,结果返回一个阵列。...environment中命名值进行FUN计算后返回一个列表值,用户可以请求所有使用过命名对象。

3.4K30

R海拾遗-apply家族学习

概述 在实际工作中,我们总要面对各种各样数据结构处理,这些操作可以使用循环来完成,但是容易造成内存占用,以前其实了解过这方面的函数,但是记不清,因此整理下 主要函数如下 apply lapply...X 处理数据框 MARGIN 1表示对行,2表示对列处理,c(1,2)表示对行列进行操作 FUN 函数,可以为自定义函数,或者为内置函数 示例 # 使用iris数据集进行测试 data(iris) #...函数 lapply函数和apply函数差别在于,lapply输出一个列表 参数方面少了margin 示例 x<-lapply(iris[,1:4],mean,na.rm=T) # 因为输出为list...格式,因此一般情况下需要使用unlist函数进行分解 unlist(x) sapply函数 Sapply函数返回一个向量,不过增加了两个参数 simplify 如果为T,输出结果数组化,否则为list...tapply函数一般对数据进行分组描述时使用 tapply(X, INDEX, FUN = NULL) 参数 -X: 一个对象,一般都是向量 -INDEX: 一个包含分类因子列表 -FUN: 对X里面每个元素进行操作函数

78330

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

❝apply 家族是 R 语言中常用函数,用于对列表、数组或其他类型数据进行循环操作。 ❞ apply 家族包括以下几个函数: ❝lapply:用于遍历列表一个元素,并对其执行函数操作。...❞ 下面是 lapply 基本语法: lapply(数据, 函数) 其中,数据是一个列表或其他数据类型,函数是要对数据执行操作。...[1] "CHERRY" 注意,lapply 函数返回值是一个列表,其中每个元素表示对应数据执行函数结果。...❝如果想要将结果转换为向量、矩阵或数组,可以使用 sapply 函数。它基本语法与 lapply 类似,只是 lapply 替换为 sapply 即可。...❞ 例如,下面的代码使用 sapply 函数列表每个字符串转换为大写: # 创建列表 x <- list("apple", "banana", "cherry") # 使用 sapply 函数列表每个字符串执行

2.9K30

Seurat软件学习4-使用RPCA进行快速整合数据集

/2131431Seurat软件学习3-scrna数据整合分析注释数据集:https://cloud.tencent.com/developer/article/2133583图片在这节中,我们提出了一个稍作修改工作流程来整合...当使用RPCA确定任何两个数据集之间锚时,我们每个数据集投射到其他PCA空间,并通过相同相互邻接要求来约束锚。这两种工作流程命令基本相同,但这两种方法可以在不同背景下应用。...虽然命令列表几乎是相同,但这个工作流程要求用户在整合前对每个数据集单独运行主成分分析(PCA)。...,该函数Seurat对象列表作为输入,并使用这些锚点将两个数据集整合在一起。...个基因是有很多新东西,但是为了保险起见,可以把两个都做完了,然后比对一下。

93920

R语言中循环函数(Grouping Function)

na.rm,我们可以这个参数带人到apply函数中,作为第4个参数: apply(m,1,sum,na.rm=TRUE) [1] 9 8 需要注意是如果是Data Frame,那么系统会将其转为Matrix...Lapply 前面说到apply是对于matrix和array,针对list,我们可以使用lapply函数。该函数接收list,返回结果也是一个list。...其调用如下: Apply(数据,运算函数,函数参数) 对于Data Frame来说,如果不同列有不同数据类型,不能转换成Matrix,但是却可以转换成List,然后使用lapply函数。...Sapply Sapply函数Lapply函数很类似,也是对List进行处理,只是在返回结果上,Sapply会根据结果数据类型和结构,重新构建一个合理数据类型返回。...= TRUE,USE.NAMES = TRUE) 比如我们自定义一个函数m3,接受3个数值参数,然后3个数字相乘返回结果: m3<-function(a,b,c){a*b*c} 然后我们构建3个向量

1.5K20

隐式循环及function函数

apply()函数 apply()一般用于处理矩阵/数据框,返回通过函数应用于数组或矩阵边距而获得向量或数组或值列表。...[,1:4], 2, plot) lapply()函数 lapply返回与X长度相同列表,其中每个元素都是FUN应用于X相应元素结果。...lapply是apply()函数变种,主要用于处理列表/向量(列表/向量没有行和列概念,所以会比对矩阵/数据框操作更简单一些),也更适用于批量读取数据或者处理统计数据 基本语法为: lapply(...用户友好版本和包装器,默认情况下通过应用simplify2array()返回一个向量、矩阵,如果simplify = "array",则在适当情况下返回一个数组。...NAMES = FALSE)与lapply(x, f)相同。 Vapply类似于sapply,但它有一个预先指定返回值类型,因此使用它可能更安全(有时更快)。

12310

2023.4生信马拉松day7-R语言综合应用

本节课涉及到R包主要有三个:stringr、dplyr、tidyr 课前准备工作: options("repos" = c(CRAN="http://mirrors.tuna.tsinghua.edu.cn...,列表每个元素对应原来每个元素拆分结果 -(2)列表使用不方便——simplify = T简化结果,简化成矩阵 -(3)注意:之前提到过,矩阵某一列不能单独转换数据类型,需要把矩阵转换成数据框再转换某列数据类型...可以在多层嵌套时看清楚哪个括号和哪个括号是一对: options -- code -- display --use rainbow parentheses -(3)用管道符%>%可以更加简洁明了;%>%表示向后传递,把管道符前面所有的东西作为后一个函数一个参数...如何挑出30个数里最大五个 -(1)排序 -(2)取最后五个 图片 3.向量/列表隐式循环-lapply() 对列表/向量中每个元素实施相同操作 lapply(1:4,rnorm) #批量画图...加载test1.Rdata,两个数据框按照probe_id列连接在一起,按共同列取交集 #2.

3.6K80

R语言利用vcf文件计算等位基因频率和连锁不平衡(LD)R方

:=这个符号,暂时没有搞明白这个写法是什么意思,可以一直把列添加到一个数据框里 以下代码把数据框转化成了一个列表 gt %>% t() %>% as.data.table() %>%...gt.list[[1]] %>% length() for(i in 1:length(gt.list)){ p[[i]] <- table(gt.list[[1]])/n } 自定义计算LD函数...) R2 <- list() if(is.list(p)){ biv <- which(unlist(lapply(ht,function(x){length(levels(x))}))...} } return(R2) }) 整个函数逻辑还看不明白 这里自定义函数还用到了compiler这个R包,有什么作用暂时不太明白 函数是输入两个位点等位基因和等位基因频率 calcLD(...gt.list[[1]],p[[1]],gt.list[[3]],p[[3]]) gt.list 格式 p数据格式 以上是本期推文内容 一个R语言零散知识点:pivot_longer()函数把多列数据转换成长格式

15200

如何批量导入搜狗词库?

概 述 上一期大猫讲到了如何使用@qinwf写cidian包(大家可以在github上找到)搜狗词典导入分词词库,使用到核心函数是: decode_scel 至于批量导入呢,其实方法非常简单。...核心就是使用list.files函数获取工作目录下面的所有词库文件名,然后使用lapply函数全部导入。最后把导入文件汇总并去除重复观测后输出,就大功告成啦。 一步一步来。...output = str_c(scel.paths[i], ".txt"), cpp = TRUE)}) %>% invisible() 接着,所有词库合并成一个词库,...# 所有的txt字典导入并整合成单一用户词典,这里使用到了data.table包中rbindlist函数 ---- dict.paths <- list.files(cidian.dir, pattern...不过没关系,重要东西重复三遍,大猫在下期就再讲一遍分组回归哈。

2.9K10

老板喊你调研文献?推荐你用R包软件①easyPubMed

但是我,发现结果里面有\符号和""符号,不知道算不算正常。 于是找了一个标题进行搜索, 去文章对应界面截图, 发现有该文献标题中确实存在"",所以是正常现象。 成功获取文献标题!...于是我在这里另起炉灶,再次从设置搜索条件开始, table_articles_byAuth()被使用前提就是我已经使用batch_pubmed_download()函数需要文献汇总文件下载下来。...文件转换成为数据框时候我们可以对显示内容进行选择(正向&反向)。...经过fetch_pubmed_data()函数之后,相当于使用了PubMed API search功能,现在上图中选出目标文献信息目前在列表3个子集里面,每一个列表里面都不止一篇文献。...要把这些文献名称整理出来 信息只能通过 articles_to_list()函数一个一个提取,所以下面写了个循环 ## 建立一个列表储存这些信息 ## 储存为 list all_xml <- list

43020

【R语言经典实例8】如何定义一个R函数

问题 如何定义一个R函数。 解决方案 使用关键字function,并在其后跟随函数参数列表函数主体。...先前例子中我们提到cv函数作为lapply函数一个参数,而若使用匿名函数直接作为lapply函数参数,则能将原先命令简化至同一行中: > lapply(lst, function(x) sd(...下面给出几个需要注意地方: 返回值 所有函数都有一个返回值,即函数主体最后一个表达式值。你也可以通过return(expr)命令给出函数返回值。...2.12 定义函数 问题 如何定义一个R函数。 解决方案 使用关键字function,并在其后跟随函数参数列表函数主体。...先前例子中我们提到cv函数作为lapply函数一个参数,而若使用匿名函数直接作为lapply函数参数,则能将原先命令简化至同一行中: > lapply(lst, function(x) sd(

2.9K40

「R」观察R是如何工作

"),typeof),即忽略as函数,因为R会自动语言对象强制转换为列表 可以看到if-then语句一些片段没有包含在解析后表达式中(尤其是else关键字)。...要注意,列表一个项目是一个符号。在本例中,该符号指向是if函数。因此,虽然if-then语句语法与函数命令不同,但R语句分析器会将表达式翻译为函数命令,再执行表达式。...函数名是第一个项目,剩下项目是函数参数。...对于常数而言,返回列表中只有一个项目: > as.list(quote(1)) [[1]] [1] 1 通过使用quote函数,我们发现,R语言中很多结构只是函数命令语法糖。...¨G5Gdeparse`函数可以语法树转化回合适格式R代码。

54030

R编程之路_数据汇总(2)

) 4. [1] 0 0 0 MARGIN长度可以不是1(多维应用),如果长度等于X维数,应用到FUN函数数据就只有一个值,结果没什么意义,甚至函数会获得无效值: 1. > apply(b,...,情况就复杂了,apply函数结果会是列表。...2、lapply、sapply和vapply函数: 这几个函数是一套,前两个参数都为X和FUN,其他参数在R函数帮助文档里有相信介绍。...它们应用数据类型都是列表,对每一个列表元素应用FUN函数,但返回值类型不大一样。lappy是最基本原型函数,sapply和vapply都是lapply改进版。...)进行类型检查sapply 虽然sapply返回值比lapply好多了,但可预测性还是不好,如果是大规模数据处理,后续类型判断工作会很麻烦而且很费时。

57640

ORA富集分析

(gs)]->GO #提取GO列表一个元素下GOID,Term,Ontology,Definition #这里是写了一个函数,用lapply循环列表一个元素,使用@提取其信息,以向量形式返回赋给...go_anno[,3]=="BP",])->GO_BP #然后用unlistgs列表中所有对应BP元素(内容前文说到是包含基因entrezid向量)从头到尾连成一个向量 BP_gene<-...以下是用于entrezid转换成gene symbol,作为输出使结果可读性更高代码 #获取ENTREZID和symbol对应关系 kGO #提取GO列表一个元素下GOID,Term,Ontology,Definition #这里是写了一个函数,用lapply循环列表一个元素,...(go_anno[go_anno[,3]=="BP",])->GO_BP #然后用unlistgs列表中所有对应BP元素(内容前文说到是包含基因entrezid向量)从头到尾连成一个向量

36210

R编程(五:apply 族匿名函数与不定长函数

res <- c() for(i in 1:nrow(test)){ res[[i]] <- sum(test[i,]) } lapply列表或向量进行操作,且返回值也是一个列表。...var,分位数quantile) > lapply(test,mean) $x [1] 34.5 $y [1] 33.5 $z [1] 28.5 sapply 比lapply 简单,也是处理列表或向量...不定长函数 参考:https://www.jianshu.com/p/7a3d027258bb 我们可以通过省略号,来定义一个不定长参数。...中内容都会被传入summary 函数当中。 但是,如果我们希望对... 中所有参数分别处理呢?这时候我们需要做是在函数内部将对象...转换为一个列表。...load("test2.Rdata") apply(test, 1, var) # 2.加载class.Rdata,尝试前6列转为数值型,得到一个新矩阵 load("class.Rdata") y

79130
领券