[英]Select every nth row from dataframe
我有一个数据表,想从中提取每第五行来创建一个新表。 有没有实现这一点的命令?
这是我的数据示例:
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
对于数据框 df,您可以获得 df.new 为:
df.new = df[seq(1, nrow(df), 5), ]
这将每 5 行创建一个从第 1 行到第 nrow(表的行数)的索引。 您可以使用起点和 5 来提取其他序列。
此任务的一种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
或者:
df %>%
filter(row_number() %% 5 == 1)
如果要提取 5,10...
newdf <- df[c(rep(FALSE,4),TRUE), ]
如果是 1,6,11,
newdf <- df[c(TRUE,rep(FALSE,4)), ]
df<-df[c(seq(0,25,5)),]
其中 df 是您的数据框。
另一种选择可能是像这样组合slice
和seq
:
library(dplyr)
slice(df, seq(1, nrow(df), 5))
#> count Idf_Nr block
#> 1 1 1233 B12
#> 2 6 365 B12
#> 3 11 1092 B12
#> 4 16 1266 B12
#> 5 21 1074 B12
由reprex 包于 2022-07-10 创建 (v2.0.1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.