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

「R」do.call 使用

do.call这个函数是我搜索问题时会看到别人经常使用一个函数,心生好奇,这次来看看它用法。 从文档来看,do.call可以通过名字构建和执行函数,并且将参数以列表形式传入。...显然,前两个参数很重要,确定了该函数一般用法,后两个参数涉及一些执行引用与环境问题,这方面我懂不多,不过基本也用不到。 下面通过例子学习下使用。...c()添加更多参数 tmp <- expand.grid(letters[1:2], 1:3, c("+", "-")) tmp ## Var1 Var2 Var3 ## 1 a...,如果quote起来就会报错 #do.call(paste, list(as.name("A"), as.name("B")), quote = FALSE) # 当然你如果直接使用下面这个语句结果是一样...首先在新环境创建函数对象是打印输入平方,A是10。 call函数用来创建和测试对象,不过看起来用法与quote()类似,将东西先存起来执行,等后续调用。

1K20

「R」do.call 妙用——参数更新

R 中 do.call() 是我极少用到一个函数,不过它在很多情况下是蛮有用,之前我也做过简单介绍。...它可以实际调用函数时将参数以列表形式传入,下面是一个简单函数: f <- function(x) print(x^2) 我们可以用下面的方式调用 do.call(): do.call(f, list...最近我需要批量更新参数时发现了 do.call() 好用之处。 批量建模时可能需要比较对建模函数设定不同参数,我们以求和函数作为建模函数举例。...假设建模需要 4 个参数,造一个类似的求和函数: Sum <- function(a = 1, b = 2, c = 3, d = 4) { return(sum(a, b, c, d)) } 而我们需要批量运行这个函数...,而且只修改其中 3 个参数,另外参数是外部定义,比如说其他使用这个函数的人。

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

R语言批量拼接遥感影像

tif_file_list列表中全部栅格对象(Raster* object)类型元素都带入到mosaic()函数运行后,do.call()函数就结束了。   ...此外,由于mosaic()函数运行时,除了两个栅格对象(Raster* object)类型参数,还有其他一些辅助参数,比如拼接时重叠区域该如何处理、处理时是否考虑NoData值影响等;由于我们时通过...do.call()函数来调用mosaic()函数,因此这些参数就不太好直接指定了。...因此,我们可以通过$运算符,将mosaic()函数所需要其他参数一并放入tif_file_list中,在后期do.call()函数调用mosaic()函数时,将同时读取这些参数,起到将参数传递到mosaic...其中,本文中我们需要指定mosaic()函数fun参数与na.rm参数,二者分别是指拼接时重叠区域像元值计算方法,以及计算重叠区域像元值时,是否考虑NoData值影响;我们将这2个参数分别设定为

24910

R tips: rlang中expression操作符

R中,library函数表现有点特殊,传给它参数变量不是类似于常规R表达式即时执行,而是像是被‘冻结’了一样。...可以发现在library函数中,package变量并不会被替换为它值,而print函数就会打印出它值:ggplot2,library函数中就像是把package这个变量给冻结了一样。...它本质原理在于:R在运行代码时,会先将代码解析成叫做expression中间态,然后再执行expression即可获取代码结果。...("+")、、 ###### # add <- function(e1, e2) e1 + e2 ### 手动定义add函数两个参数...不要忘记将左侧构建参数名包括引号中,因为等号左侧是形参,只能是字符串或者symbol: add2(!!x1 := 1, '{x2}' := 2) #[1] 3 add3(!!

1.5K10

R编程(四:函数详述、匿名函数、变量作用域)

定义函数时,没有缺省值参数写在前面, 有缺省值参数写在后面。遵守这样约定容易使得程序被误读, 有时会在运行时匹配错位。...与管道符号 do.call 可以对列表对象进行处理,相当于将列表中所有元素作为参数进行处理: > do.call(mean, list(3,4,5)) [1] 3 而magrittr包中%>%...命令行定义所有变量都保存在工作空间 (workspace), 也称为全局环境中。...tmp = function(){b = 10; print(b)} > b 错误: 找不到对象'b' 函数调用时,行参被赋值为实参,函数内部对形式参数作任何修改在函数运行完成后都不影响原来实参变量..., 而且函数运行完毕后形式参数不再与实际存储空间联系。

2.2K20

124-R编程18-R内部机制2

,会将变化结果输出到屏幕,如果希望继续追踪,可以使用函数untracemem。...这种做法节省空间也节省运行时间。 R3.1.0之前则用深拷贝方法, 即复制列表时连各个元素保存值也制作副本。...但是如果修改数据框y一行, 因为这涉及到所有列, 所以整个数据框所有列都会制作副本。 环境 环境是一组名称组成对象。对于R 来说,环境作为一个数据结构与有名列表相似。...创建环境 环境创建和打印,操作也和列表对象非常相似。...如果我们环境中定义名字相同,则会将之前名称覆盖: e3 <- rlang::env( a = 4, a = 2 ) > e3$a [1] 2 我们打印环境,会输出十六进制数表示内存地址

61950

R编程(三:运算符、控制语句、基本函数

| 表示 或,只有一个条件成立就返回真&表示 与,必须所有条件均满足才返回真 2. if 条件语句 if 基本句 只要if 随后条件句返回为TRUE,则其后语句则会被执行。...表示各种与 EXPR 可能输出值绑定语句。当... 中某个丛句与EXPR值相等时,便会输出丛句对应值。因此switch 常用于for 循环遍历打印。...break 和 next 循环语句中可以通过break 与next 语句跳出循环。不过二者存在区别。next:跳过循环语句中剩余内容,直接跳到下一次循环开始。进行中循环结束,迭代继续。...我们可以创建一个空列表,让每次循环输出值作为一个元素添加到列表中。使用 do.call 语句我们可以对列表进行 cbind ,将其拼接在一起。...abs(b) } # 调用函数 # sum_abs(-3, 2) # 返回5 也可以定义不需要任何输入值函数,直接调用 function中设定参数 hello <- function(){

79810

R语言数据清洗实战——复杂数据结构与list解析

,保存json时候用过list.save,不知道大家还有印象?)...因为myresult里面有144个子list,分别代表144个课程,每一个子list(课程)所有子孙节点一共是53个,所有的信息展开之后应该是一个144*53大矩阵(或者数据框)。...列表展开 fulldata% lapply(unlist) %>% do.call(rbind,.) %>% as.data.frame() 这份数据集将所有的课程list...可是不觉得以上步骤有些繁琐嘛~简单方法当然有啦,任坤大大开发rlist是专门针对R语言list结构数据处理,其中封装了很多功能强大列表操作函数,使得R语言中操作列表就像使用dplyr操作data.frame...(.data, expr) 只有两个参数,第一个是数据框,第二个是匿名函数

1.5K50

跟着Nature Communications 学画图~ggplot2拼图

第一个是ggpubr,对应函数是ggarrange() 第二个是cowplot,对应函数是plot_grid() 第三个是aplot,对应函数是insert_bottom() right()top...()left() 这个论文里提供拼图方法是自定义了一个函数函数是 grid_arrange_shared_legend <- function(..., ncol = length(list(......,但是不影响使用,直接复制过来套用就可以了 用这个函数需要指定拼图对象,指定几行几列,指定图例位置,图例位置只有右和下可以选。...image.png 两幅图如果按照一行两列来拼的话,图例位置参数写,默认是放下面 grid_arrange_shared_legend(p1,p2,ncol=2,nrow=1) ?...image.png 今天内容主要收获是知道了一个自定义拼图函数。如果有需要的话可以直接拿来使用。

1.3K30

131-R茶话会23-R随机数有点坑

前言 最近我复现一篇文章操作。发现每一次生成结果都有所不同。 难道是我操作出了问题?难道是我用R 包版本不对,函数不同?难道是随机数问题? 后来发现,果然是随机数问题。...如果是函数中呢?...虽然这个函数,可以显示函数内部调用随机数和函数,帮助我们明确随机数与随机函数对应关系: > withr::with_seed(32, runif(1:5)) [1] 0.5058405 0.5948084...此外,我也推荐大家写涉及到随机数代码时,使用withr::with_seed,起码告诉并且提醒自己,哪个种子,对应哪个随机函数。防止被吞,或者吞了其他人种子。...额外补充 并不是所有R 使用者都会注意到随机数问题了。因此,考虑是否发生随机数一个方法是,既然set.seed是即用即废,那么这也是个用来判断某个步骤是否调用了随机数方法。

53910

用R和Keras深度学习例子

展望未来,我们应该注意到,所有这些都需要以多线程方式快速完成,即使是CPU速度相对较快,显卡速度相对较慢情况下,准备阶段也可能比实际学习更耗费资源神经网络。...它结合了以前软件包所有优点,包括稳定性和杀手级功能(我们任务框架中无用),与OCR库Tesseract集成。下面给出了不同数量核上读取和转换图像时速度测量结果。...而且由于我们预处理辅助函数将被这些值参数化,所以你将不得不使用丑陋  paste0 (...) 或者 sprint (...) ...and () 将指定维度数组组合在一起,同时 do.call () 将任意数量参数传递给内部函数。...其他参数( along = 1)以非常奇怪方式设置: do.call (and, c (x_y_batch $ x, list (along = 1)))。

4.3K00

跟着NC学绘图-ggplot2批量绘制配对箱线图

❞ 论文 注:此论文提供原始数据及绘图代码,但在运行作者代码时遇到报错颇多,小编根据作者代码进行了修改,对源代码感兴趣可以去论文中下载。...原图 仿图 图形解读 ❝此图与以往图形无区别,此次主要使用自定义函数+循环方式进行绘图,代码具有较高可观赏性。.../Fig2.png", plot = do.call("wrap_plots", c(plots, ncol = 4))+ plot_annotation(tag_levels...= 'A'), height = 6, width = 18, units = "cm") 关注下方公众号下回更新迷路 ❝本节介绍到此结束,有需要获取此文档代码朋友,欢迎到淘宝店铺...❞ 2024更新绘图内容同时包含数据+代码+markdown注释文档+文档清单,「小编只分享案例文档额外回答问题无答疑问。」 在线同步更新 2024年案例图展示 2023年案例图展示

15510

R语言︱list用法、批量读取、写出数据时用法

—————————— unlist与list区别 unlist(x)生成一个包含x所有元素向量。...list批量读取数据时候用法,一开始笔者困惑: 1、如何循环读取xlsx中sheet数据,然后批量放入list之中?...——先定义list 2、如何定义写出时候文件名字——paste函数 批量读取基本流程就是:写入(list[[i]])、操作、写出 #1、读取xlsx中所有的sheet表格 #如果像vector一样定义...——不等长合并 两种方法:c(),可以将list[1] 和list[2]进行直接合并,可以兼容不等长,当然合并之后,还有list文件; rbind.fill函数,不等长合并函数plyr包中。...#如何解决合并时数据不等长问题——两种方法:do.call函数以及rbind.fill函数(plyr包) #rbind.fill函数只能合并数据框格式 #do.call函数在数据框中执行函数函数,数据列

17.4K52

R︱并行计算以及提高运算效率方式(parallel包、clusterExport函数、SupR包简介)

lapply使用时候也会出现这样问题,如果出现问题,那么就白跑了,而且也不可能给你停顿下来。那么如何让lapply运行中跳过报错办法呢?...注意是,他可以加载最终版本变量,函数运行前,变量都是可以改变: base <- 2 cl<-makeCluster(2) registerDoParallel(cl) base <- 4 test...R语言使用Parallel时候,会出现这样疑问,一些东西都需要广播给不同核心,那么clusterExport步骤怎么办呢?能不能clusterExport一整个函数?...通过查阅文献看到了,这是因为“调用核心数--计算机内存”匹配造成。...如果你数据集很大,调用了很多核心,那么你计算机内存如果不够匹配,就会出现连接不错,甚至还出现卡机,一动不动情况(当然,只要耐心等待,其实他还是会继续运行...等待时候会有点长) 解决办法一

8.5K10
领券