R,有条件地删除重复的行

标签 r conditional duplicates

我在R中有一个数据框,其中包含ID.A,ID.B和DISTANCE列,其中distance表示ID.A和ID.B之间的距离。对于ID.A的每个值(1-> n),可能存在ID.B和DISTANCE的多个值(即ID.A中可能存在多个重复的行,例如,值4的所有行均具有不同的ID.B和该行中的距离)。

我希望能够删除重复了ID.A的行,但要以距离值为条件,这样我就为每个ID.A记录留有最小的距离值。

希望这有意义吗?

提前谢谢了

编辑

希望一个例子将比我的文字有用。在这里,我想删除ID.A = 3的第二和第三行:

myDF <- read.table(text="ID.A ID.B DISTANCE
  1 3 1
  2 6 8
  3 2 0.4
  3 3 1
  3 8 5
  4 8  7
  5 2 11", header = TRUE)

最佳答案

您也可以在基本R中轻松完成此操作。如果dat是您的数据框,

do.call(rbind, 
        by(dat, INDICES=list(dat$ID.A), 
           FUN=function(x) head(x[order(x$DISTANCE), ], 1)))

关于R,有条件地删除重复的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10835284/

相关文章:

r - COUNTIF 相当于 dplyr 总结

从 R 中的多分隔 csv 文件读取数据

R的环境

include/require 内部条件的 PHP 行为

mysql - 对任意行列表求和

c# - 从哈希集中替换并合并 "Duplicates"

用于从谷歌分析导入数据的 R 脚本

ruby - 将数字序列转换为条件/范围

javascript - 基本 JavaScript if 与 else if

c# - XML 节点最新时间戳 C#