通过使用 .$ 和 .[ ] 调用值来执行计算

performing calculation by calling values with .$ and .[ ]

这纯粹是一个概念性问题,但我如何在使用 .$ 或 .[] 的计算中引用向量 c(2,3) 的元素?

library(tidyverse)

c(2, 3) %>% 
  .[1] * .[2]

这段代码工作正常,但需要创建一个临时对象 (v):

v <- c(2,3)
v[1] * v[2]

而且我想知道如何在不创建临时对象 v 的情况下在 tidyverse 中执行计算。

我们需要放置大括号以避免运算符优先

c(2, 3) %>%
        {.[1] * .[2]}
#[1] 6

此外,我们可以使用map2来乘以对应的元素(tidyverse)

map2_dbl(2, 3, `*`)
#[1] 6

map2_dbl(2:5, 6:9, `*`)
#[1] 12 21 32 45

reduce

c(2, 3) %>% 
    reduce(`*`)
#[1] 6

list(2:5, 6:9) %>% 
           reduce(`*`)
#[1] 12 21 32 45