【发布时间】:2020-07-17 10:15:07
【问题描述】:
我一直在处理这个问题,但仍然没有找到最佳解决方案。希望你能帮助我。
我有一个包含几列的数据集,我需要对其进行过滤。例如,假设我有以下内容:
DB <- data.frame(A = c(rep("GeneA",6), rep("GeneB",6)), B = c("one", "one", "two", "two", "three", "three", "one", "one", "two", "two", "three", "three"), C = c(1,2,5,4,8,5,8,7,4,5,1,8))
我想要的是 A 列中每个值的过滤数据集,B 列中具有最高均值的组。
在这种情况下,所需的输出将是:
DB <- data.frame(A = c("GeneA","GeneA","GeneB","GeneB"), B = c("three", "three", "one", "one"), C = c(8,5,8,7))
在网上搜索只发现了可以过滤每个组的最高值的情况,我需要该组的每一行。
与:
result <- DB %>%
group_by(A,B) %>%
summarize(c = mean(C))
我只是获得手段。我也试过用aggegate等,但没办法。而且我确信有一种简单的方法,可能使用 data.table。
【问题讨论】: