当前位置:  开发笔记 > 编程语言 > 正文

删除依赖于因子的重复行

如何解决《删除依赖于因子的重复行》经验,为你挑选了0个好方法。

我想从由不同的fators和条件分层的数据帧中删除重复的行,例如最高均值或sd.

一些数据a是行的因子和id.

set.seed(13654)
a<- sort(c(1,1,4,1,2,3,2,3,1,5))
b<- matrix(runif(100,min = 6,max = 14),nrow = 10)
c<- data.frame(a,b)  

例如,我想减少具有最高平均值的行上的最终数据集.

# calculate means per row
gr <- cbind(a,M=rowMeans(c[,-1]))
# get rows stratified by a with highest mean:
gr1 <- aggregate(M~a,gr,which.max)
gr1
  a M
1 1 3
2 2 2
3 3 1
4 4 1
5 5 1

因此,因子级别1的第三行,因子级别2的第二行......应该包括在新数据帧中.我想避免循环.我尝试的是split数据,然后使用lapply,但到目前为止没有工作.

cl <- split(c,a)
# this function does not work it will select not the correct rows. 
lapply(cl, "[", gr1, )

我的最终目标是这样的功能:

remove.dupl <- function(data,factor,method=c(highest.mean,highest.sd,lowest.sd,...))

你能为我的问题提供一些tipps或解决方案吗?按照我的工作流程,我需要一个"操作方法"来"["正确使用lapply从数据帧列表中选择不同的行.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有