Выберите каждую n-ую строку в кадре данных

У меня есть таблица данных и хочу извлечь каждую пятую строку из нее, чтобы создать новую таблицу. Есть ли команда для достижения этой цели?

Вот пример моих данных:

count   Idf_Nr  block
1   1233    B12
2   1233    B12
3   1446    B12
4   1446    B12
5   365 B12
6   365 B12
7   876 B12
8   876 B12
9   842 B12
10  842 B12
11  1092    B12
12  1092    B12
13  923 B12
14  923 B12
15  1266    B12
16  1266    B12
17  256 B12
18  256 B12
19  588 B12
20  588 B12
21  1074    B12
22  1074    B12
23  474 B12
24  474 B12
25  1421    B12

Ответ 1

Для фрейма данных df вы можете получить df.new как:

df.new = df[seq(1, nrow(df), 5), ]

Это создает индекс из строки 1 до nrow (количество строк таблицы) каждые 5 строк. Вы можете играть с начальной точкой, а 5 - для выделения других последовательностей.

Ответ 2

Если вы хотите извлечь 5,10...

newdf <- df[c(rep(FALSE,4),TRUE), ]

Если 1,6,11,

newdf <- df[c(TRUE,rep(FALSE,4)), ]

Ответ 3

Одна возможность dplyr для этой задачи может быть:

df %>%
 slice(which(row_number() %% 5 == 1))

  count Idf_Nr block
1     1   1233   B12
2     6    365   B12
3    11   1092   B12
4    16   1266   B12
5    21   1074   B12