如何根据预先确定的间隙(R)选择行?

时间:2018-05-03 23:35:37

标签: r

我最近发布了另一个问题,询问如何基于colunm变量创建新的data.frame。我认为这会解决我的问题,但我现在意识到我错了。 我的问题是,我如何在一个恒定的间隙中选择行并用它们创建一个新的data.frame? 就像,如果我有:

1   A   B   C
2   D   E   F
3   G   H   I
4   J   K   L
5   M   N   O
6   P   Q   R 

我想要选择增长为2到2的行,如:

2  D   E   F
4  J   K   L
6  P   Q   R

但实际上在我的情况下,我需要选择40到40之间的行,并用它们创建一个新的data.frame。

对不起另一篇文章,但如果你们能帮助我,我会很高兴的。我是R的新用户。

2 个答案:

答案 0 :(得分:0)

使用dplyr包非常容易。

library(dplyr)
test %>% dplyr::filter(row_number() %% 2 == 0)

基本上,您正在调用行号并仅选择偶数行号。如果你想要每40行一次,你就会做row_number() %% 40 == 0。如果您想从另一行开始并获得每40行,则只需将0更改为另一个数字,因为%%运算符执行模块化divs.ion。

答案 1 :(得分:0)

如果您不想加载任何额外的包,可以使用R基本函数:

选项1

df[seq_len(nrow(df))%%2==0,]

选项2

subset(df, seq_len(nrow(df))%%2==0)