簡體   English   中英

根據第二個數據框列中的匹配替換“數據框列”中的值

[英]Replace Values in Dataframe Column based on match in second data frame columns

我已經在Stack Overflow上看到了六種左右的解決方案,但是,所有解決方案都使用“內”來處理單個數據幀中的匹配。 我需要一個跨多個數據框的解決方案:

我在數據框1的一列中有值

DF1$A :“ DF1$A等。”

我還有第二個數據框,其中包含這些代碼的“鍵”

DF2$A :“ 1、2、3、4、5、6、7、8、9、10”

DF2$B :“餡餅,比薩餅,漢堡包等”

如何更改DF1$A中的值以匹配DF2$B中的值?

您可以使用match作為指向df2$B特定位置的指針來執行此操作:

# make some toy data
set.seed(1)
df1 <- data.frame(A = sample(seq(3), 10, replace = TRUE))
df2 <- data.frame(A = seq(3), B = c("pizza", "hot dog", "hamburger"), stringsAsFactors = FALSE)

df1$B <- df2$B[match(df1$A, df2$A)]

結果:

> df1
   A         B
1  3 hamburger
2  1     pizza
3  2   hot dog
4  1     pizza
5  1     pizza
6  2   hot dog
7  1     pizza
8  2   hot dog
9  3 hamburger
10 2   hot dog

您可以使用基本merge按索引dplyr ,然后從dplyr select子集並重命名:

library(tidyverse)

DF1 <- DF1 %>% 
  merge(DF2, by = "A") %>%
  select(-A, A = B) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM