通过使用 .$ 和 .[ ] 调用值来执行计算
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
这纯粹是一个概念性问题,但我如何在使用 .$ 或 .[] 的计算中引用向量 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