函数生成;更改其他功能的默认值(部分)

2023-12-06

我需要一个函数生成器,它接受另一个函数和该函数的任何参数并设置新的默认值。我以为@hadley 的pryr::partial这就是那个神奇的功能。它完全符合我的要求,只是您无法更改新的默认值。所以在这里我可以改变sep在我的新paste函数,但不是新的默认值collapse = "_BAR_"。我怎样才能使partial以这种方式执行(即默认为collapse = "_BAR_"但启用将其设置为collapse = NULL如果需要的话)?如果这是不可能的partial有没有办法重写代码partial去做这个:https://github.com/hadley/pryr/blob/master/R/partial.r

library(pryr)
.paste <- pryr::partial(paste, collapse = "_FOO_")

.paste(1:5)
.paste(1:5, LETTERS[1:5], sep="_BAR_")
.paste(1:5, collapse=NULL)

> .paste(1:5)
[1] "1_FOO_2_FOO_3_FOO_4_FOO_5"

> .paste(1:5, LETTERS[1:5], sep="_BAR_")
[1] "1_BAR_A_FOO_2_BAR_B_FOO_3_BAR_C_FOO_4_BAR_D_FOO_5_BAR_E"

> .paste(1:5, collapse=NULL)
Error in paste(collapse = "_FOO_", ...) : 
  formal argument "collapse" matched by multiple actual arguments

partial适合修复某些参数值,但如果您想更改默认值,您可能会考虑不同的策略。这会起作用

.paste <- paste
formals(.paste)$collapse <- "_FOO_"

这会更改函数的参数

args(.paste)
# function (..., sep = " ", collapse = "_FOO_") 
# NULL

然后你可以做

.paste(1:5)
# [1] "1_FOO_2_FOO_3_FOO_4_FOO_5"
.paste(1:5, LETTERS[1:5], sep="_BAR_")
# [1] "1_BAR_A_FOO_2_BAR_B_FOO_3_BAR_C_FOO_4_BAR_D_FOO_5_BAR_E"
.paste(1:5, collapse=NULL)
# [1] "1" "2" "3" "4" "5"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数生成;更改其他功能的默认值(部分) 的相关文章

  • 在前两个冒号上分割字符串

    我想在前两个冒号上拆分一列字符串 但不在任何后续冒号上拆分 my data lt read table text my string some data 123 34 56 78 100 87 65 43 21 200 a4 b6 c888
  • R中不重复的组合

    我试图获取变量元素长度为 3 的所有可能组合 虽然它部分地与combn 一起工作 但我没有完全得到我正在寻找的输出 这是我的例子 x lt c a b c d e t combn c x x 3 我得到的输出看起来像这样 1 2 3 1 a
  • R 比较所有列对的每个值[重复]

    这个问题在这里已经有答案了 我有一个 18x18 的数据框 我想将所有可能的列对相互比较 以便对于每对两列 18 行中的值相互比较 由于我的数据太大 无法放在这里 我写了一个小例子来说明到目前为止我所想到的 gt a lt c 1 18 g
  • 使管道工 API 可通过互联网使用

    我对 R 中的管道工包相当陌生 我有一个可以在我的计算机上本地运行的工作 API 我可以使用以下代码从网络上的实时 JS 应用程序访问它 r lt plumb my api code r r run host 0 0 0 0 port 80
  • rle 命令帮助

    我在使用 rle 命令时遇到了一些麻烦 该命令旨在找到参与者连续达到 8 个连续参与者的点 例如 如果 x lt c 0 1 0 1 1 1 1 1 1 1 1 1 我想返回值 11 感谢 DWin 我一直在使用这段代码 which rle
  • 按元素名称组合/合并列表

    我有两个列表 其元素的名称部分重叠 我需要将其逐个元素合并 组合成一个列表 gt lst1 lt list integers c 1 7 letters letters 1 5 words c two strings gt lst2 lt
  • 错误:列索引必须最多为 1,如果... heatmap.2

    我在 heatmap 2 中收到错误 我在这里发现了类似的错误R knnImputation 给出错误 https stackoverflow com questions 45117125 r knnimputation giving er
  • ggplot多个时间不等的时间序列

    我知道有一些与时间序列和多个数据帧相关的已回答问题 但我似乎无法弄清楚这一点 我想绘制 4 个不同压力传感器与时间的时间戳数据 pa 列 我有来自同一实验的 4 个带时间戳的压力读数 dfs 然而 由于传感器故障和数据中的其他信号 传感器收
  • 如何更改 R Markdown HTML 文档中目录的颜色和属性?

    我花了很多时间谷歌搜索这个 但似乎无法弄清楚 我正在使用 R Markdown 制作 HTML 文档 文档在这里 http rmarkdown rstudio com html document format html http rmark
  • 在r中的数据框中循环线性回归输出

    我有一个下面的数据集 我想在其中对每个国家和州进行线性回归 然后绑定数据集中的预测值 添加另外三列后的最终数据框 我已经对一个国家和一个地区进行了此操作 但想对每个国家和地区进行此操作 并将预测值 上限值和下限值放回到cbind的数据集中
  • 在 R 中绘制 3D 数据

    我有一个 3D 数据集 data data frame x rep c 0 1 0 2 0 3 0 4 0 5 each 5 y rep c 1 2 3 4 5 5 data z runif 25 min data x data y 0 1
  • R data.table 中的复杂求和涉及查看其他列

    我有一个数据表 其中变量的每个值v1 and v2有一个关联的 类型 在单独的列中编码 这是一个 MWE X lt data table id 1 5 group c 1 1 2 2 2 v1 c 10 12 14 16 18 type v
  • 包含多行 LaTeX 方程的 R 帮助页面

    我正在编写 R 包文档roxygen2 我想将以下多行方程插入到帮助页面中 但我的 LaTeX 代码没有被渲染 hello2 description deqn F t begin cases alpha t f L t 1 alpha t
  • 在R中重新排序字母数字年龄组

    假设这就是 R 给我的 df1 data frame grp c lt 2 2 5 21 26 27 32 6 10 val rep 0 5 grp val 1 lt 2 0 2 2 5 0 3 21 26 0 4 27 32 0 5 6
  • 添加一条适合 R 中绘图峰值的曲线?

    如果给定两个向量及其图 是否有一个函数可以添加一条适合峰值的曲线 例如 我有 x c 0 20 X 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 y 1 19 4 17 9 8
  • 如何在 ifelse 中使用示例

    我有以下清单 x rep a 100 如果我使用下表 ifelse x a sample c 1 100 1 0 当我第一次运行时 我得到以下输出 1 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22
  • 如何使用 dplyr 将 2 个列集的内连接的列名称作为变量传递

    我一直在研究各种将列名作为变量传递的建议方法 例如使用 bang bang xvar as name xvar 和其他各种方法 但我无法让它工作 有谁知道如何传递使用的列名mtcars在下面的管道中作为变量 i e xvar lt mpg
  • R:动态创建变量名

    我正在寻找使用 for 循环创建多个数据帧 然后将它们缝合在一起merge 我可以使用创建我的数据框assign paste blah 但是 在同一个 for 循环中 我需要删除每个数据帧的第一列 这是我的代码的相关部分 for j in
  • Predict.randomForest 中的错误

    我希望有人能够帮助我解决 R 中 randomForest 包的预测函数遇到的问题 当我尝试预测测试数据时 我不断收到相同的错误 到目前为止 这是我的代码 extractFeatures lt function RCdata feature
  • 在R中读写csv.gz文件

    有非常similar https stackoverflow com questions 9548630 read gzipped csv directly from a url in r关于这个主题的问题 但非在 R 下非常精确地处理这个

随机推荐

  • 如果 XML 文件为空,则捕获 PHP 错误

    所以我从 XML 文件中获取一些信息 如下所示 url http myurl blah xml simplexml load file url 除了有时 XML 文件是空的 我需要代码正常失败 但我似乎不知道如何捕获 PHP 错误 我试过这
  • Math.random() === Math.random() 是否可能

    在 JavaScript 中 这个表达式在任何浏览器中都会计算为 true 吗 为什么或者为什么不 Math random Math random 注意 请请按字面意思理解上面的代码 我不是问 Math random 是否会生成重复值 注意
  • crm 2016 在线不支持 SetParameter("fetchXml", FetchXml)

    我有这个代码 function FilterCasesSubgrid var CasesSubgrid Xrm Page getControl contact getGrid var CasesSubgrid window parent d
  • XPages ValuePicker 仅限 1000 个

    我使用 valuePicker 和 DojoListTextBox 设计元素 如果我有超过 1 000 个值 则此值选择器最多列出 1 000 条记录 如何增加这个限制 我只是想让它列出我有多少个值
  • AES 填充无效且无法删除

    我正在使用 AES 加密算法来加密和解密项目中的值 我的代码几乎每次都能工作 但有时我会得到Padding is invalid and cannot be removed错误 我的项目是 ASP NET Core 3 1 项目 它发布在
  • 在运行集成测试之前,如何让 Maven 构建等待 Jetty 服务器以分叉模式启动?

    我有一份关于代码覆盖率的报告一体化 test 我确实有集成测试 并且这些测试在 Maven 构建中成功运行 当我单击 HTML 报告右上角的 会话 链接时 我可以在列表中看到我的测试类 但我看不到现在由测试执行的主要类 并且所有覆盖率报告百
  • 如何在C#中的列表框中插入复选框?

    我想要一个代码来在 C Sharp 的列表框中插入一个复选框 选择该复选框后 必须选择列表框中的所有项目 您可以使用 CheckListBox 显示一个列表 其中每个项目旁边都有一个复选框 但是要制作一个选择列表中所有内容的复选框 它必须是
  • socket.io 删除特定侦听器

    我正在使用 Socket io v0 9 16 和 铬34 我正在尝试删除特定侦听器 或取消订阅特定订阅 像这样的东西 socket on testComplete function data console log test comple
  • JavaScript - 如何同时播放多个视频?

    我有一个array我希望同时播放的视频元素 我在网上找到的唯一方法是使用new MediaController 但这似乎并没有得到广泛 如果有支持的话 我期望做的是 var videos document querySelectorAll
  • Kubernetes 上的 Angular(入口路由)

    我需要如何配置 Angular 7 应用程序正在运行的入口 apiVersion extensions v1beta1 kind Ingress metadata name myingress annotations nginx ingre
  • 如何在 R 中建立多项式回归模型?

    我有一个包含 70 个变量的数据集 我想尝试对其进行多项式回归 如果列数是三 四 我可以手动编写这样的代码 model lt lm y poly var1 3 poly var2 3 poly var4 4 如果我们有 70 个变量 我们将
  • 如何创建仅在链接 pthread 时才使用互斥体的库?

    我正在 Linux 上创建一个 C 库 它有多个函数 它们一起对一些全局数据进行操作 为了使这些函数是线程安全的 它们必须在代码中的适当位置使用互斥体 在 Linux 中 为了在应用程序中使用 pthreads 需要链接到适当的库 lp线程
  • 在触摸设备上的浏览器中禁用双击“缩放”选项

    我想要disable the 双击缩放功能性在指定元素上在浏览器中 在触摸设备上 无需禁用所有缩放功能 例如 可以多次点击一个元素来发生某件事 这在桌面浏览器上运行良好 如预期 但在触摸设备浏览器上 它会放大 仅 CSS 解决方案 Add
  • SQL 忽略 WHERE 子句

    M SSMS SQL 我的 WHERE 子句中的这一行抛弃了我的 WHERE 子句的其余部分 WHERE AND b DESIGNATION IS NOT NULL OR c DESIGNATION IS NOT NULL 由于某种原因 当
  • JfreeChart自定义票据标签

    我正在使用 JFreechart 在生成的报告中绘制图表JasperReports 实际上我正在使用动态报告它使用 JasperReports 我正在策划一个barchart我想在轴上的标签上添加自定义字符串 图片会更好地解释一切 Now
  • 在保存为 PNG 之前将新创建的 iOS 图像旋转 90 度

    我已经阅读了许多与此相关的答案 但我仍然无法让它工作 我有一个用户可以在其中签名的视图 它看起来是这样的 http d pr i McuE 我可以成功检索该图像并将其保存到文件系统 但我需要在保存之前将其旋转 90 度 以便签名从左到右读取
  • mysql_real_escape_string 和 array_map 返回空白字符串?

    我还没有学会如何使用参数化查询 根据本网站上的其他一些帖子 这是我明天早上绝对需要做的第一件事 并且我想将大量表单数据放入查询中 转义 我两次遇到过这个解决方案 POST array map mysqli real escape strin
  • Amazon SES 从实例配置文件元数据服务器检索凭证时出错。 (客户端错误:404)

    在让 AWS SES 正常工作时遇到一些问题 我想从我的网站向用户发送电子邮件 看起来凭证没有经过验证 但是我使用了从 IAM 生成的正确凭证 我还尝试了服务器根密钥 但它给了我同样的错误 我已经没有关于如何进一步解决 调试的想法 因此任何
  • Spring Batch 和 Cloudera hadoop 版本不兼容

    我正在尝试 Spring Batch 字数统计程序并遇到这样的版本问题 ERROR org springframework batch core step AbstractStep
  • 函数生成;更改其他功能的默认值(部分)

    我需要一个函数生成器 它接受另一个函数和该函数的任何参数并设置新的默认值 我以为 hadley 的pryr partial这就是那个神奇的功能 它完全符合我的要求 只是您无法更改新的默认值 所以在这里我可以改变sep在我的新paste函数