gpt4 book ai didi

R - 比较并删除数据框中具有相同列值的行,同时保留其中一个

转载 作者:行者123 更新时间:2023-12-05 09:24:06 27 4
gpt4 key购买 nike

我有一个数据框,它由几行组成,“名称”列中的值相同,但“距离”列中的值不同。我想删除“名称”中具有相同条目的所有行,除了距离最小的行。有没有比比较所有行并在比较它们的“距离”值之前检查它们的“名称”条目是否相同更简单的方法?真实的数据框大约是 14000 行 x 14 列。我一直在寻找答案,但还没有找到任何答案,所以非常感谢您的帮助!

这将是原始数据框:

     name      distance number
[1,] "apple" "2.5" "4"
[2,] "banana" "3" "6"
[3,] "apple" "1" "2"
[4,] "satsuma" "4" "8"
[5,] "satsuma" "7.5" "1"
[6,] "melon" "3" "3"
[7,] "satsuma" "1" "6"

这是我想要得到的(不一定按这个顺序):

     name      distance number
[1,] "banana" "3" "6"
[2,] "apple" "1" "2"
[3,] "melon" "3" "3"
[4,] "satsuma" "1" "6"

最佳答案

首先,按 namedistance 对 data.frame 进行排序,然后标记要保留的行作为每个名称的第一行:

sorted <- dat[order(dat$name, dat$distance), ]

keep <- c(TRUE, head(sorted$name,-1) != tail(sorted$name,-1))

结果是

sorted[keep, ]

关于R - 比较并删除数据框中具有相同列值的行,同时保留其中一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15793062/

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