根据列中的值过滤行

时间:2017-10-04 15:39:03

标签: r

我想过滤数据框以删除在col0中出现类似名称的行。我发现了两个或多个相似的名字,我想在col1中保留行值最高的行。

col0              col1     col2      col3      col4          col4          col5
hsa-let-7a-5p   2.487304 15.04636  8.400422 1.702870e-10 1.084728e-07 13.867065
hsa-let-7a-5p   2.491626 13.70345  7.414093 4.002913e-09 1.274928e-06 10.808433
hsa-let-7d-5p   3.074776 11.36059  6.799401 2.977052e-08 6.321274e-06  8.887774
hsa-miR-7d-5p   3.123776 11.84145  6.210222 2.069015e-07 3.050719e-05  7.032421
hsa-miR-122-5p  -2.521427 13.91681 -6.132486 2.673240e-07 3.050719e-05  6.703794
hsa-miR-122-5p  2.602304 11.53867  6.083099 3.145797e-07 3.050719e-05  6.636385

在我的示例中,我想保留row2,row4和row6。 关于功能的任何提示?

1 个答案:

答案 0 :(得分:1)

假设它是data.frame,那么它不能有重复的行名。因此,它必须是matrix,或者它可能是data.frame的第一列。通过假设,按第一列分组,即' col0',slice' col1'

中具有最大值的行
 library(dplyr)
 df1 %>%
    group_by(col0) %>%
    slice(which.max(col1))