[英]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.