gpt4 book ai didi

根据不同数据帧中的值重新编码第二个数据帧中的值

转载 作者:行者123 更新时间:2023-12-05 03:26:10 26 4
gpt4 key购买 nike

我想根据不同数据框中的相应值重新编码第二个数据框中的值。

例如,这是第一个数据框的样子。每个代码都分配给相应的区域。

<表类="s-表"><头>区域代码<正文>112345223456223457223458345678345679

第二个数据框是这样的:

<表类="s-表"><头>to_codefr_code<正文>234561234523457234564567823457456782345812345456781234523457

但我想根据相应的区域重新编码,所以它看起来像这样:

<表类="s-表"><头>to_codefrom_code<正文>212232321312

最佳答案

我们可以使用match从'df1'中获取匹配'code'的索引和df2中列的值,并提取相应的'zone'

library(dplyr)
df3 <- df2 %>%
mutate(across(c(to_code, fr_code), ~ df1$zone[match(.x, df1$code)]))

或者在base R

df3 <- df2

df3[c("to_code", "fr_code")] <- lapply(df3[c("to_code", "fr_code")],
function(x) df1$zone[match(x, df1$code)])

-输出

df3
to_code fr_code
1 2 1
2 2 2
3 3 2
4 3 2
5 1 3
6 1 2

数据

df1 <- structure(list(zone = c(1L, 2L, 2L, 2L, 3L, 3L), code = c(12345L, 
23456L, 23457L, 23458L, 45678L, 45679L)), class = "data.frame", row.names = c(NA,
-6L))

df2 <- structure(list(to_code = c(23456L, 23457L, 45678L, 45678L, 12345L,
12345L), fr_code = c(12345L, 23456L, 23457L, 23458L, 45678L,
23457L)), class = "data.frame", row.names = c(NA, -6L))

关于根据不同数据帧中的值重新编码第二个数据帧中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71819396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com