gpt4 book ai didi

r - purrr 中的部分难题

转载 作者:行者123 更新时间:2023-12-01 04:42:26 24 4
gpt4 key购买 nike

嗨,我经常发现自己在使用 .fists = FALSE参数在 purrr:partial .
所以今天我决定不再重复自己,我试着写一个 部分 partial本身:

backwards_partial <- partial(partial,.first = FALSE)

这个功能让我很快就紧张起来,因为不清楚如何 .first = FALSE将会被使用:
  • 作为输出函数的默认参数
  • 作为调用partial的参数,将预填充的参数移到输出函数的后面

  • 我想我可以通过写这个来纠正这种歧义:
    backwards_partial <- lift_ld(lift_dl(partial),list(.first = FALSE))

    但这失败了,看起来并不优雅。

    所以我的问题是...
    有没有我在这里缺少的正确方法(最佳实践,社区标准)?
    如果是这样,那是什么?
    不然怎么解决这个问题?

    编辑:

    我应该提到我的用例 backwards_partial .
    我希望预填充我将传递给 compose 的多个函数的参数它将过去函数的结果传递给第一个参数,因此 .fists = FALSE确保我们不会覆盖预填充的参数。

    最佳答案

    这里有一个方法:

    # copy function
    backwards_partial <- purrr::partial
    # change formals
    formals(backwards_partial)[5] <- alist(.first = FALSE)

    让我们测试一下:
    partial(head,2)(1:5)
    # Error in head.default(2, ...) : length(n) == 1L is not TRUE

    partial(head,2,.first = FALSE)(1:5)
    # [1] 1 2

    backwards_partial(head,2)(1:5)
    # [1] 1 2

    关于r - purrr 中的部分难题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49395208/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com