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

R语言中 apply 函数详解

lapply()是list apply的缩写,可以对列表或向量使用lapply函数。无论是一个向量列表还是一个简单的向量,lappy()都可以在这两个向量上使用。...由于我们现在处理的是向量/列表,lapply函数也不需要MARGIN参数。也就是说,lapply的返回类型也是一个列表。...我创建了一个简单的表,告诉我们返回的类型: 返回值 每个元素的长度 输出 列表 1个 向量 列表 > 1并且长度相同 矩阵 列表 > 1,且长度可变 列表 我们将看到上述所有场景的示例: 场景1...使用tapply()非常容易,因为它会自动从item_cat 向量 中获取唯一的值,并几乎立即对数据应用所需的函数。...因此,mapply函数用于对通常不接受多个列表/向量作为参数的数据执行函数。当你要创建新列时,它也很有用。

20.5K40

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

sapply:与 lapply 类似,但它自动将结果转换为向量、矩阵或数组。 apply:用于对矩阵或数组的行、列或其他维度进行循环操作。...例如,下面的代码使用 lapply 函数对列表中的每个字符串执行 toupper 函数,将其转换为大写: # 创建列表 x <- list("apple", "banana", "cherry") #...❝如果想要将结果转换为向量、矩阵或数组,可以使用 sapply 函数。它的基本语法与 lapply 类似,只是将 lapply 替换为 sapply 即可。...❞ 例如,下面的代码使用 sapply 函数将列表中的每个字符串转换为大写: # 创建列表 x <- list("apple", "banana", "cherry") # 使用 sapply 函数对列表中的每个字符串执行...sapply 函数计算列表中所有数字的平方和 下面的代码使用 sapply 函数计算列表中所有数字的平方和: # 创建列表 x <- list(1, 2, 3, 4, 5) # 使用 sapply

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

    R语言学习-列表

    列表的创建 使用list(。。。)创建列表,list(object1,object2...),其中object可以是到目前为止的提到的任何数据类型。...每一个列表组件都可设置标签,就像向量的变量名或矩阵的行名一样,标签hi显示在$的后面。...c(3,6),c(7,8)) #创建一个列表,两个有标签 > W5$a [1] 1 2 > W5$b [1] 3 6 > class(W5$a) [1] "numeric" > W5[["a"]] #使用两个中括号...unlist()函数解除列表 列表相关函数 lapply()函数 lapply()-list apply 给每个组件执行给定函数,返回列表,和矩阵apply()类似,同属于apply家族 使用方法:lapply...(W, max) $d3 [1] 4 $d4 [1] 8 sapply()函数,与lapply()函数一样,只是返回的结果类型是向量> W <- list(d3= c(1,2,3,4),d4 = c(

    7910

    隐式循环及function函数

    apply()函数 apply()一般用于处理矩阵/数据框,返回通过将函数应用于数组或矩阵的边距而获得的向量或数组或值列表。...[,1:4], 2, plot) lapply()函数 lapply返回与X长度相同的列表,其中的每个元素都是将FUN应用于X的相应元素的结果。...lapply是apply()函数的变种,主要用于处理列表/向量(列表/向量没有行和列的概念,所以会比对矩阵/数据框的操作更简单一些),也更适用于批量读取数据或者处理统计数据 基本语法为: lapply(...X:向量(原子或列表)或表达式对象。其他对象(包括分类对象)将被base::as.list强制转换。 FUN:函数,即对x的每一行/列执行FUN这个函数。...写函数的函数——function() 使用apply或者lapply函数时,都有FUN参数,就是我们在执行循环时需要用的函数,这个函数可以是内置的比如mean或者sum等函数,也可以由我们自己构建 如果需要写对应需求的函数

    15610

    R语言的数据结构(包含向量和向量化详细解释)

    5 列表和数据框(都不是向量) 5.1 列表 列表创建及基本结构 向量的元素要求同种类型,而列表list与向量不同,可以组合多个不同类型的对象。所以列表不是向量。...apply系列函数lapply``sapply lapply=list apply,对每个组件执行给定的函数,并返回另一个列表。...还有合并 apply族函数在数据框中的用法 apply lapply sapply apply 如果数据框的每一列的数据类型相同,则可以对该数据框使用apply函数。或针对数据框中的某些列应用。...lapply和sapply 因为数据框技术上就是列表,所以lapply和sapply可以应用于数据框。...数据框是列表的特例,数据框的列构成列表的组件,所以lapply函数会作用于数据框的每一列,返回返回一个列表。但未知错乱,意义不大。

    7.1K20

    R语言入门系列之三:R脚本

    在linux系统命令行,我们可以使用“Rscript”命令来调用运行写好的程序,并添加一些必须的命令行参数;在Windows系统的Rstudio中,可以使用source()函数来调用写好的R脚本。...apply函数家族 apply函数家族主要成员如下: apply 对数组行或者列使用函数 apply(X, MARGIN, FUN, ...) lapply 对列表或者向量使用函数 lapply...(X, FUN, ...) sapply 对列表或者向量使用函数 sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE) vapply 对列表或者向量使用函数......) apply()通过对数组或者矩阵的一个维度使用函数生成值得列表或者数组、向量: apply(X, MARGIN, FUN, ...)...lapply()通过对x的每一个元素运用函数,生成一个与元素个数相同的值列表: lapply(X, FUN, ...)

    3.7K20

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

    , ...) lapply Apply a Function over a List or Vector对列表或者向量使用函数 lapply(X, FUN, ...) sapply Apply a Function...over a List or Vector对列表或者向量使用函数 sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE) vapply Apply...,mapply 将函数 FUN 依次应用每一个参数的第一个元素、第二个元素、第三个元素上。...X 一个列表 classes 关于类名的字符向量,或者为any时则匹配任何类 deflt 默认结果,如果使用了how=”replace”,则不能使用 how 字符串匹配三种可能结果 参考文献:...同时,lapply(x,fun),这个x的格式很重要,如果灌入的是list,在使用的时候,其实是先把x[[1]],之后然后放入fun之中。也就是说,先拨开的list,然后再灌入。

    3.5K30

    R语言中的批处理函数

    apply族函数分别有apply函数,tapply函数,lapply函数,mapply函数。每一个函数都有自己的特点,在处理不同类型的数据可以选用相对应的函数。...apply族函数分别有apply函数,tapply函数,lapply函数,mapply函数。每一个函数都有自己的特点,在处理不同类型的数据可以选用相对应的函数。...其中参数na.rm=TRUE,可以忽略所用的NA值 ? 2.lapply和sapply函数 lapply和sapply函数可以用于处理列表数据和向量数据(vector/list)。...lapply函数得到处理得到的数据类型是列表,而sapply函数得到处理的数据类型是向量。这两个函数除了在返回值类型不同外,其他方面基本完全一样。 ? ?...也就是说tapply函数就是把数据按照一定方式分成不同的组,再在每一组数据内进行某种运算。 ? 4.mapply函数 mapply函数主要是对多个列表或者向量参数使用函数. ?

    2.7K20

    R tips:使用enframe和map2优雅的迭代列表

    在R中更易于处理的数据形式是data.frame,list并不是太好处理,常用操作就是对它进行循环迭代。...for或者lapply迭代 可以使用for循环或者lapply对列表进行迭代,比如要绘图,则可以: for (i in test) plot(i) lapply(test, plot) 都是将列表中的三个元素绘制出三个散点图...使用enframe和map2迭代列表 但是其实可以有更优雅的方式迭代列表,还可以完成更多的操作,比如在每个图形上加上各自的注释信息。...先将列表转变为一种特殊的tibble:包含两列name和value,name是列表名,value是相应的值。...对于test而言,value就是上面创建的三个向量,如下: test_t <- enframe(test) tets_t # # A tibble: 3 x 2 # name value

    1.9K10

    R海拾遗-apply家族学习

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

    80630

    R语言 apply函数家族详解

    apply {base} 通过对数组或者矩阵的一个维度使用函数生成值得列表或者数组、向量。 apply(X, MARGIN, FUN, ...)...{base} 通过对x的每一个元素运用函数,生成一个与元素个数相同的值列表 lapply(X, FUN, ...)...,所以它使用起来会更加安全,有的时候会更快 在vapply函数中总是会进行简化,vapply会检测FUN的所有值是否与FUN.VALUE兼容,以使他们具有相同的长度和类型。...= TRUE) x 一个原子向量,典型的是一个向量 INDEX 因子列表,和x长度一样,元素将被通过as.factor强制转换为因子 simplify 若为FALSE,tapply将以列表形式返回阵列...X 一个列表 classes 关于类名的字符向量,或者为any时则匹配任何类 deflt 默认结果,如果使用了how=”replace”,则不能使用 how 字符串匹配三种可能结果

    1.7K100

    分组计算描述性统计量函数—by()函数

    《R语言实战》这本书上是这样描述by()函数的: 使用by()分组计算描述性统计量,它可以一次返回若干个统计量。...$male [1] 24.5 lapply()中的 “l” 代表list,它接受list作为输入,并将指定的操作应用于列表中的所有元素。...在list上逐个元素调用FUN函数。可以用于data.frame上,因为data.frame是一种特殊形式的list。...,并对每组探针进行统计:计算每组中每行探针表达量的平均值(也就是每个探针在6个样本中表达量的均值rowMeans(x)),再取平均值最大的那个探针作为该symbol所对应的唯一探针,我们上面讲的by()...第三个参数是我们自己定义的函数:计算每个小矩阵中每行探针表达量的平均值(也就是每个探针在6个样本中表达量的均值rowMeans(x)),再取平均值最大的那个探针作为该symbol所对应的唯一探针which.max

    1.1K21

    【R语言】基础知识|apply函数家族中的兄弟姐妹

    01 apply() 这个函数是对数组,矩阵或数据框的一个变量使用函数生成列表或者数组/向量。 apply(x,MARGIN ,fun,….) x是数据对象,类型可以为数组/矩阵/数据框。...02 lapply() lapply(x,FUN,….) x是数据对象,类型可以为向量/列表/数据框。 FUN是指使用的函数。 ?...04 tapply() 使用的格式: tapply(x,INDEX,FUN,…,simplify=TRUE) x:数据类型是向量 INDEX:因子列表,而且长度和x一样,如果INDEX不是因子,tapply...MoreArgs是FUN函数的其他参数的列表。 #使用mapply函数重复生成列表list(x=3:6),重复次数times=1:4,而且生成的结果是列表。 ?...#使用mapply函数重复生成列表list(x=3:6),重复次数times=1:4,而且生成的结果是矩阵。 ?

    1K41

    人和小鼠的基因怎么无缝切换?

    问题 今天给生信入门班和数据挖掘班的往期学员提供直播答疑遇到了一个好问题,给大家分享下。 学员使用的是小鼠的数据 想要使用曾老师提供的marker基因,但那些基因是人的。...## [1] "S100A8" ## ## $BCells ## [1] "CD69" "CD79A" ## ## $MesothelialCells ## [1] "MSLN" 所以如果强行使用...lapply :用于将函数应用于列表(list)或向量(vector)的每个元素,并返回一个列表。lapply 的用法如下: lapply(X, FUN, ...)...其中: X 是要应用函数的对象,可以是列表或向量。 FUN 是要应用的函数。 ... 是传递给函数 FUN 的其他参数(可选)。...所以这句代码就是将str_to_title应用于cell_type_markers的每一个元素,也就是基因名称组成的向量。返回结果仍然是列表,且保留了原有的元素名称(即细胞名字)。

    9510

    R语言系列第三期:②R语言多组汇总及图形展示

    事实上,我们在实验中或者调查之后的分析往往希望通过分组比较来获得有统计学意义的结果,因此分组数据在我们平常的工作中更加常见,也更加科学严谨,那么我们就来了解下分组数据的描述。...在R中,就可以使用lapply()和sapply()两个函数实现。前一个总是返回列表(用“l”标识),而后者则尽可能将结果简化(用“s”标识)成向量或矩阵。...因此,计算数值向量组成的数据框中每个变量的均值可以如下操作: > lapply(thuesen,mean,na.rm=T) $blood.glucose [1] 10.3 $short.velocity...tapply()函数用来创建表格(用“t”标识),该表由函数关于第二个参数定义的子组上的返回值构成,其中子组参数可以是一个因子或者一列因子。后一种情形生成一个交叉分类表。...前一个里有一个“~”y~x前后的两个元素关系是用x表达y。这是我们在模型公式里经常看到的符号。之后在回归方程的建立过程中经常使用。

    1.7K00

    从零开始的异世界生信学习 R语言部分 06 R应用专题

    list,使用下标循环,可以将每次循环的结果都保存到列表中 ## cbind 按列拼接 a = rnorm(10) b = 1:10 cbind(a,b) ##do.call() 函数是对列表 list...apply(test, 1, sum) ##对test数据框的每一行求和 图片 图片 ### 2.lapply(list, FUN, …) # 对列表/向量中的每个元素(向量)实施相同的操作...test <- list(x = 36:33,y = 32:35,z = 30:27);test #返回值是列表,对列表中的每个元素(向量)求均值(试试方差var,分位数quantile) lapply...(test,mean) lapply(test,fivenum) lapply(test, var) lapply(test, sd) lapply(test, quantile) 图片 ### 3.sapply...full_join(test1,test2,by="name") ##取全集 semi_join(test1,test2,by="name") ##半连接,对左边表格取在右边表格住存在的子集 anti_join

    2.5K30
    领券