我有兩個資料幀,一個帶有 ID 和分類結果,第二個帶有 ID,對應于第一個資料幀的分類結果并與第二個分類輸出相關聯。我正在嘗試根據第一個分類與第二個資料幀的分類 ID 之間的對應關系,將第二個分類輸出添加到第一個資料幀。由于 ID 不對應,我無法進行簡單的合并。
我不確定我是否清楚,所以我將提供一個可重現的示例。
set.seed(15)
df1 <- data.frame(c(1:20), c(floor(runif(20, min=1, max=6))))
df1 <- setNames(df1, c("ID", "classif"))
df2 <- data.frame(c(1:6), c(floor(runif(6, min=1, max=3))))
df2 <- setNames(df2, c("ID_classif", "classif2"))
下面的第一個資料框顯示了 ID 和第一個分類結果
> df1
ID classif
1 1 4
2 2 1
3 3 5
4 4 4
5 5 2
6 6 5
7 7 5
8 8 2
9 9 4
10 10 5
下面的第二個資料框顯示了分類 ID 和第二個分類結果。
> df2
ID_classif classif2
1 1 1
2 2 2
3 3 2
4 4 3
5 5 3
6 6 3
我想要獲得的是一個看起來像下面的資料幀,它基本上是第一個資料幀,使用“classif”和“ID_classif”之間的對應關系添加了第二個分類
> df3
ID classif classif2
1 1 4 3
2 2 1 1
3 3 5 3
4 4 4 3
5 5 2 2
6 6 5 3
7 7 5 3
8 8 2 2
9 9 4 3
10 10 5 2
uj5u.com熱心網友回復:
一個可能的解決方案:
library(tidyverse)
df1 %>%
left_join(df2, by = c("classif" = "ID_classif"))
#> ID classif classif2
#> 1 1 4 1
#> 2 2 1 2
#> 3 3 5 2
#> 4 4 4 1
#> 5 5 2 2
#> 6 6 5 2
#> 7 7 5 2
#> 8 8 2 2
#> 9 9 4 1
#> 10 10 5 2
#> 11 11 1 2
#> 12 12 4 1
#> 13 13 3 1
#> 14 14 4 1
#> 15 15 5 2
#> 16 16 5 2
#> 17 17 3 1
#> 18 18 5 2
#> 19 19 1 2
#> 20 20 4 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/483335.html
