在 tidyverse 的函数式编程中将主要参数 tibble 列作为次要参数进行管理

Management of columns of primary argument tibbles as secondary arguments, in functional programming in tidyverse

提问人:GiulioGCantone 提问时间:7/17/2023 最后编辑:GiulioGCantone 更新时间:7/18/2023 访问量:20

问:

Functions$diversity <- function(db,entity,trait,v){
  db %>%
summarize(crossed = list(crossing(trait, trait)),
          .by = entity) %>%
  unnest(crossed) %>%
  rename(
    i = trait...1,
    j = trait...2
  ) %>%
  left_join(db %>% transmute(
      entity,
      i = trait,
      p_i = v
    )
  ) %>%
    left_join(db %>% transmute(
      entity,
      j = trait,
      p_j = v
    )
  )
}

在这里,我无法管理如何使函数理解这一点

  • 参数确实是 ,但参数 和 是 的列。dbtibbleentitytraitventity
  • trait...1unnest

我知道我应该使用 ,或者但我尝试的所有方法似乎都不起作用。pastegluetargets

更新:

f <- function(db, entity, trait) {
  
  db %>%
    summarise(i = crossing({{ trait }},{{ trait }}),
              .by = {{ entity }}) 
}

db <- data.frame(
  entity = c("A", "A", "B", "B"),
  beta = c("X", "Y", "X", "Z")
)

f(db,entity,beta)

我认为这即使对卷曲也不起作用? 你能向我证实这一点吗?crossing

函数编程 tidyverse 大括号 目标

评论

0赞 Liang Zhang 7/19/2023
你是对的。根据这个问题,它目前不能很好地支持这一点。

答: 暂无答案