簡體   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