首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“磁力管”应用

“磁力管”应用
EN

Stack Overflow用户
提问于 2022-05-18 11:16:27
回答 1查看 68关注 0票数 6

如何将对象输送到apply调用中的特定位置,这不是第一个输入?magrittr点占位符似乎不适用于此。

代码语言:javascript
复制
  dat <- 1:10 
  locs <- list(c(1, 2),
               c(3, 4),
               c(5, 6))
  
  foo <- function(x, y, z) {
    out <- mean(c(x[y], x[z]))
    return(out)
  }
  
  # works
  lapply(locs, function(z) foo(dat, z[1], z[2]))
  
  # none of these work 
  dat %>%
    lapply(locs, function(z) foo(., z[1], z[2]))
    
  dat %>%
    lapply(locs, function(z) foo((.), z[1], z[2]))
    
  dat %>%
    lapply(locs, function(z) {. %>% foo(z[1], z[2])})
    
  
  # New native pipe and placeholder also do not work
  dat |>
    lapply(locs, function(z) foo(_, z[1], z[2]))  
EN

回答 1

Stack Overflow用户

发布于 2022-05-18 11:23:04

您可以像下面这样使用{}

代码语言:javascript
复制
>   dat %>%
+     {lapply(locs, function(z) foo(., z[1], z[2]))}
[[1]]
[1] 1.5

[[2]]
[1] 3.5

[[3]]
[1] 5.5
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72288169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档