繁体   English   中英

使用嵌套的 purrr map 函数作为替代代码

[英]Using nested purrr map functions as alternative code

我有以下代码,其中包含两个不同长度的向量,并重复每一列,以便当向量被列绑定时,新 dataframe 的每一行都有一个唯一的组合。 我的问题是:有没有办法通过使用嵌套的 purrr::map 函数从下面的代码中获得相同的结果?

library(tidyverse)

big <- LETTERS[1:10]
small <- letters[1:6]

ColBig <- rep(big, each =length(small))
ColSmall <- rep(small, length(big))

bind_cols(ColBig, ColSmall) %>% 
  setNames(c("ColBig", "ColSmall"))

你可以试试:

map_df(big, ~map(small, ~c(ColBig = .y, ColSmall = .x), .y = .x))

# # A tibble: 60 x 2
# ColBig ColSmall
# <chr>  <chr>   
# 1 A      a       
# 2 A      b       
# 3 A      c       

如果您想使用map ,可能是这样的

> do.call(rbind, map(as.list(big), ~ data.frame(ColBig = .x, ColSmall = small)))
   ColBig ColSmall
1       A        a
2       A        b
3       A        c
4       A        d
5       A        e
6       A        f
7       B        a
8       B        b
9       B        c
10      B        d
11      B        e
12      B        f
13      C        a
14      C        b
15      C        c
16      C        d
17      C        e
18      C        f
19      D        a
20      D        b
21      D        c
22      D        d
23      D        e
24      D        f
25      E        a
26      E        b
27      E        c
28      E        d
29      E        e
30      E        f
31      F        a
32      F        b
33      F        c
34      F        d
35      F        e
36      F        f
37      G        a
38      G        b
39      G        c
40      G        d
41      G        e
42      G        f
43      H        a
44      H        b
45      H        c
46      H        d
47      H        e
48      H        f
49      I        a
50      I        b
51      I        c
52      I        d
53      I        e
54      I        f
55      J        a
56      J        b
57      J        c
58      J        d
59      J        e
60      J        f

但我想从基础expand.grid开始的 expand.grid 应该足够了

> rev(expand.grid(ColSmall = small, ColBig = big))
   ColBig ColSmall
1       A        a
2       A        b
3       A        c
4       A        d
5       A        e
6       A        f
7       B        a
8       B        b
9       B        c
10      B        d
11      B        e
12      B        f
13      C        a
14      C        b
15      C        c
16      C        d
17      C        e
18      C        f
19      D        a
20      D        b
21      D        c
22      D        d
23      D        e
24      D        f
25      E        a
26      E        b
27      E        c
28      E        d
29      E        e
30      E        f
31      F        a
32      F        b
33      F        c
34      F        d
35      F        e
36      F        f
37      G        a
38      G        b
39      G        c
40      G        d
41      G        e
42      G        f
43      H        a
44      H        b
45      H        c
46      H        d
47      H        e
48      H        f
49      I        a
50      I        b
51      I        c
52      I        d
53      I        e
54      I        f
55      J        a
56      J        b
57      J        c
58      J        d
59      J        e
60      J        f

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM