这纯粹是一个概念性的问题,但是如何在使用。$或。[]的计算中引用我的向量c(2,3)的元素?
library(tidyverse)
c(2, 3) %>%
.[1] * .[2]
此代码工作正常但需要创建临时对象(v):
v <- c(2,3)
v[1] * v[2]
我想知道如何在tidyverse中执行计算而不创建临时对象v。
答案 0 :(得分:7)
我们需要放置大括号以避免运算符优先级
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