Выберите каждую 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