gpt4 book ai didi

r - 有没有办法用 R 中的另一个数据帧替换一个数据帧中的行?

转载 作者:行者123 更新时间:2023-12-03 23:27:13 25 4
gpt4 key购买 nike

我试图找出如何通过匹配其中一列的值来将一个数据框中的行替换为另一个数据框中的行。两个数据框具有相同的列名。

前任:

df1 <- data.frame(x = c(1,2,3,4), y = c("a", "b", "c", "d"))

df2 <- data.frame(x = c(1,2), y = c("f", "g"))

有没有办法用 df2 中的同一行替换 df1 的行,其中它们共享相同的 x 变量?它看起来像这样。
data.frame(x = c(1,2,3,4), y = c("f","g","c","d")

我已经研究了一段时间,这是我得到的最接近的 -
df1[which(df1$x %in% df2$x),]$y <- df2[which(df1$x %in% df2$x),]$y

但它只是用 NA 替换值。

有谁知道如何做到这一点?

最佳答案

我们可以使用 match . :

inds <- match(df1$x, df2$x)
df1$y[!is.na(inds)] <- df2$y[na.omit(inds)]
df1

# x y
#1 1 f
#2 2 g
#3 3 c
#4 4 d

关于r - 有没有办法用 R 中的另一个数据帧替换一个数据帧中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61863292/

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