如何在不使用任何密鑰的情況下進行一對一的連接dplyr?我有兩個表:
origin<-tribble(~"o",
1,2)
destination<-tribble(~"d",
5,
6,
7)
我想在沒有任何鍵的情況下合并它們,如下所示:
od<- tribble(~"o",~"d",
1,5,
1,6,
1,7,
2,5,
2,6,
2,7)
誰能幫我解決這個問題?
uj5u.com熱心網友回復:
您可以使用slice和根據 的長度rep重復行。然后,在 的內部,我們可以創建一個串列并根據 的長度重復其中的值;然后,將它們系結在一起。origindestinationbind_colsdestinationorigin
library(tidyverse)
origin %>%
slice(rep(1:n(), each = nrow(destination[, 1]))) %>%
bind_cols(., d = unlist(rep(
c(destination[, 1]), times = nrow(origin)
)))
輸出
# A tibble: 6 × 2
o d
<dbl> <dbl>
1 1 5
2 1 6
3 1 7
4 2 5
5 2 6
6 2 7
uj5u.com熱心網友回復:
tidyr::crossing并且expand_grid可以為您提供兩個資料框的交叉連接。
tidyr::crossing(origin, destination)
#tidyr::expand_grid(origin, destination)
# o d
# <dbl> <dbl>
#1 1 5
#2 1 6
#3 1 7
#4 2 5
#5 2 6
#6 2 7
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/398125.html
上一篇:針對日期范圍的SQL連接
