gpt4 book ai didi

r - 如何合并两个数据框并从 R 中的重复行中选择最低值

转载 作者:行者123 更新时间:2023-12-02 01:55:43 28 4
gpt4 key购买 nike

我有两个数据框 xy:

> x <- data.frame(name = c("foo","bar"), c1 = c(0.1,0.2), c2=c("y","w"))
> x
name c1 c2
1 foo 0.1 y
2 bar 0.2 w
> y <- data.frame(name = c("foo","bar","qux"), c1 = c(0.3,0.2,0.8), c2=c("k","w","z"))
> y
name c1 c2
1 foo 0.3 k
2 bar 0.2 w
3 qux 0.8 z

实际上该列可以超过 c2。我想做的是合并它们,这样就可以产生这样的结果:

name c1 c2
foo 0.1 y
bar 0.2 w
qux 0.8 z

所以请注意,当合并时,当有两行具有相同的 name 但不同的 c1 值时我们选择具有最低 c1 的一个,不管 c2,c3,c4.... 中的值如何实现?

我尝试了命令 merge(x,y,by='name') 但没有按预期工作。

最佳答案

unique.data.table 有一个 by 参数,您可以为此使用它。
order(c1) 相结合,这样“第一个”元素也将是每个 name

c1 的最小值
library(data.table)
x <- data.table(x, key=name)
y <- data.table(y, key=name)

xy <- merge(x, y, all=TRUE)

unique(xy[order(c1)], by="name")
# name c1 c2
# 1: foo 0.1 y
# 2: bar 0.2 w
# 3: qux 0.8 z

关于r - 如何合并两个数据框并从 R 中的重复行中选择最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256635/

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