I have a data table and want to extract every fifth row from it to create a new table. Is there a command to achieve this?
Here is an sample of my data:
For a data frame df, you can get df.new as:
df.new = df[seq(1, nrow(df), 5), ]
This creates an index from row 1 to nrow (number of rows of the table) every 5 rows. You can play with the starting point and the 5 to extract other sequences.
If you want to extract 5,10...
newdf <- df[c(rep(FALSE,4),TRUE), ]
If 1,6,11,
newdf <- df[c(TRUE,rep(FALSE,4)), ]
One dplyr
possibility for this task could be:
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
Or:
df %>%
filter(row_number() %% 5 == 1)