如何在不使用rep()的情况下回收map2()中较短的向量?

问题描述 投票:0回答:1

我正在尝试运行以下代码:

xx <- 1:12
yy <- 1:3
map2(xx, yy, ~ .x / .y)

但是,我遇到了一个错误。我假设 map2() 会自动回收较短的向量(即扩展 yy 的长度以匹配 xx),但似乎情况并非如此。

我想要的输出:

1
1
1
4
2.5
2
7
4
3
10
5.5
4

有没有办法让map2()自动处理向量回收而无需手动使用rep()?

r tidyverse purrr
1个回答
0
投票

您可以使用基本 R 中的

mapply()
(而不是
purrr::map2()
):

mapply(\(.x, .y) .x / .y, xx, yy)
# or 
mapply("/", xx, yy)

#  [1]  1.0  1.0  1.0  4.0  2.5  2.0  7.0  4.0  3.0
# [10] 10.0  5.5  4.0
© www.soinside.com 2019 - 2024. All rights reserved.