我想过滤数据框以删除在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。 关于功能的任何提示?
答案 0 :(得分:1)
假设它是data.frame
,那么它不能有重复的行名。因此,它必须是matrix
,或者它可能是data.frame
的第一列。通过假设,按第一列分组,即' col0',slice
' col1'
library(dplyr)
df1 %>%
group_by(col0) %>%
slice(which.max(col1))