如何下采样?

时间:2018-02-23 15:11:16

标签: r

我想知道如何在10中拆分10行,例如,我有这个基础列,DEPT和GRC1:

DEPT      GRC1
0       10,074
0,01    8,635
0,02    8,635
0,03    10,074
0,04    10,074
0,05    8,635
0,06    11,514
0,07    12,953
0,08    12,953
0,09    14,392
0,1     12,953
0,11    12,953
0,12    12,953
0,13    12,953
0,14    11,514
0,15    14,248
0,16    18,422
0,17    15,543
0,18    12,665
0,19    11,226
0,2     8,347

我想像这样拆分和打印:

DEPT    GRC1
0       10,074
0,1     12,953
0,2     8,347

有人有建议吗? 我可以在Matlab中使用函数下采样(“file”,10),但我在R中找不到一个例子。

提前致谢

3 个答案:

答案 0 :(得分:1)

您似乎只需要00,10,2等等。所以我的猜测是您只需要部门中的1个值或最多2个值:

dat[grep("^\\d{1}$|,\\d{1}$",dat$DEPT),]
   DEPT   GRC1
1     0 10,074
11  0,1 12,953
21  0,2  8,347

答案 1 :(得分:0)

您可以使用df[seq(from=1, to=nrow(df), by=10),]

df <- read.table(header=TRUE, dec=',', text=
"DEPT      GRC1
0       10,074
0,01    8,635
0,02    8,635
0,03    10,074
0,04    10,074
0,05    8,635
0,06    11,514
0,07    12,953
0,08    12,953
0,09    14,392
0,1     12,953
0,11    12,953
0,12    12,953
0,13    12,953
0,14    11,514
0,15    14,248
0,16    18,422
0,17    15,543
0,18    12,665
0,19    11,226
0,2     8,347")
df[seq(from=1, to=nrow(df), by=10),]

答案 2 :(得分:0)

您还可以使用以下代码:

df[df$DEPT == ceiling(df$DEPT * 10)/10, ]

结果:

   DEPT   GRC1
1   0.0 10.074
11  0.1 12.953
21  0.2  8.347

@jogo提供的使用数据。