R删除数据帧中的索引小于某个值的行 [英] R delete rows in data frame where nrow of index is smaller than certain value

查看:553
本文介绍了R删除数据帧中的索引小于某个值的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想删除数据框中的某些行,当具有相同索引的行数小于预先指定的值时。

I want to delete certain rows in a data frame when the number of rows with the same index is smaller than a pre-specified value.

> fof.6.5[1:15, 1:3]
   draw Fund.ID Firm.ID
1     1    1667     666
2     1    1572     622
3     1    1392     553
4     1     248      80
5     1    3223     332
6     2    2959    1998
7     2    2659    1561
8     2   14233    2517
9     2   10521   12579
10    2    3742    1045
11    3    9093   10121
12    3   15681   21626
13    3   26371   70170
14    4   27633   52720
15    4   13751     656

在这个例子中,我希望每个索引有5行。第三个绘图(这是我的索引)少于5行。如果少于5行,我可以如何删除第三个绘图?

In this example, I want each index to have 5 rows. The third draw (which is my index) has fewer than 5 rows. How can I delete the draws like the third one if they have fewer than 5 rows?

推荐答案

您可以使用 dplyr (假设您的数据位于一个数据框架中,名为 dt

You could do this using dplyr (assuming your data is in a data frame called dt:

dt %>% group_by(draw) %>% filter(n() >= 5) %>% ungroup()

或者您可以使用 xtabs

tab <- xtabs(~ draw, dt)

dt[!dt$draw %in% as.numeric(names(which(tab < 5))), ]

这篇关于R删除数据帧中的索引小于某个值的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆