gpt4 book ai didi

r - 如何从具有相同列的两个数据帧中获取合并数据帧(R)

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

我想合并它们并找到一个数据框的值,该数据框要添加到基于相同列的另一个数据框的现有值。

例如:

df1

<表类="s-表"><头>没有ABCD<正文>110102012130010

df2

<表类="s-表"><头>没有ABEF<正文>110112012132110

最后,我想要这样的输出表。

df

<表类="s-表"><头>没有ABCDEF<正文>120101120221213211010

注意:我试过merge() ,但在这种情况下,它不起作用。任何帮助/建议将不胜感激。

可重现的样本数据

df1 <- 
structure(list(No = 1:3, A = c(1L, 0L, 0L), B = c(0L, 1L, 0L),
C = c(1L, 2L, 1L), D = c(0L, 1L, 0L)), class = "data.frame", row.names = c(NA,
-3L))

df2 <-
structure(list(No = 1:3, A = c(1L, 0L, 2L), B = c(0L, 1L, 1L),
E = c(1L, 2L, 1L), F = c(1L, 1L, 0L)), class = "data.frame", row.names = c(NA,
-3L))

最佳答案

您还可以通过left_join这两个数据帧来执行此操作:

library(dplyr)
library(stringr)

df1 %>%
left_join(df2, by = "No") %>%
mutate(across(ends_with(".x"), ~ .x + get(str_replace(cur_column(), "\\.x", "\\.y")))) %>%
rename_with(~ str_replace(., "\\.x", ""), ends_with(".x")) %>%
select(!ends_with(".y"))

No A B C D E F
1 1 2 0 1 0 1 1
2 2 0 2 2 1 2 1
3 3 2 1 1 0 1 0

关于r - 如何从具有相同列的两个数据帧中获取合并数据帧(R),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67658499/

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