создание группы строк и выбор последней группы из строк - PullRequest
0 голосов
/ 20 сентября 2018

Создание группы строк и выбор последней группы из строк.

Ниже у нас есть всего 25 строк - я хочу создать 5 групп, где у каждой группы будет 5 строк, после того, как группировка завершена, я хочу выбрать только последнюю группу.

Я не хочу использовать нарезку или индексацию, так как она будет статической, она должна автоматически выбирать последнюю группу.

A           B           C 

0           0           0
0           0           0
0           0           0
0           0           0
0.000342936 0           0
0.002743484 0           0.000355999
0.009259259 0           0.002847989
0.021947874 0.000342936 0.009611962
0.042866941 0.002743484 0.022783909
0.074074074 0.009259259 0.044499822
0.117626886 0.021947874 0.076895692
0.17558299  0.042866941 0.122107512
0.25        0.074074074 0.182271271
0.342935528 0.117626886 0.259522962
0.456447188 0.17558299  0.355998576
0.592592593 0.25        0.473834105
0.753429355 0.342935528 0.615165539
0.941015089 0.456447188 0.782128871
1.157407407 0.592592593 0.976860093
1.404189089 0.752980901 1.201011401
1.681043579 0.937427456 1.454299824
1.987179487 1.145299145 1.735958595
2.321805424 1.375962857 2.045220947
2.684129999 1.628785481 2.381320116
3.073361823 1.903133903 2.743489334

Ожидаемый результат:

Последние пять строк из вышеуказанных 25 строк.

     A           B           C
1.681043579 0.937427456 1.454299824
1.987179487 1.145299145 1.735958595
2.321805424 1.375962857 2.045220947
2.684129999 1.628785481 2.381320116
3.073361823 1.903133903 2.743489334

Пожалуйста, помогите, спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Может быть, это?

 q=read_table("                  A           B           C 
              0           0           0
              0           0           0
              0           0           0
              0           0           0
              0.000342936 0           0
              0.002743484 0           0.000355999
              0.009259259 0           0.002847989
              0.021947874 0.000342936 0.009611962
              0.042866941 0.002743484 0.022783909
              0.074074074 0.009259259 0.044499822
              0.117626886 0.021947874 0.076895692
              0.17558299  0.042866941 0.122107512
              0.25        0.074074074 0.182271271
              0.342935528 0.117626886 0.259522962
              0.456447188 0.17558299  0.355998576
              0.592592593 0.25        0.473834105
              0.753429355 0.342935528 0.615165539
              0.941015089 0.456447188 0.782128871
              1.157407407 0.592592593 0.976860093
              1.404189089 0.752980901 1.201011401
              1.681043579 0.937427456 1.454299824
              1.987179487 1.145299145 1.735958595
              2.321805424 1.375962857 2.045220947
              2.684129999 1.628785481 2.381320116
              3.073361823 1.903133903 2.743489334")


 q%>%
   mutate(num=ceiling(row_number()/5))%>%
   filter(num==max(num))%>%
   select(-num)
# A tibble: 5 x 3
      A     B     C
  <dbl> <dbl> <dbl>
1  1.68 0.937  1.45
2  1.99 1.15   1.74
3  2.32 1.38   2.05
4  2.68 1.63   2.38
5  3.07 1.90   2.74
0 голосов
/ 20 сентября 2018

Мы могли бы использовать tail

no_of_groups <- 5
tail(df, nrow(df)/no_of_groups)

#          A         B        C
#21 1.681044 0.9374275 1.454300
#22 1.987179 1.1452991 1.735959
#23 2.321805 1.3759629 2.045221
#24 2.684130 1.6287855 2.381320
#25 3.073362 1.9031339 2.743489

Мы могли бы обернуть его в floor в случае, если количество строк не полностью делится на no_of_groups

#Removing one row
df <- df[-1, ]

tail(df, floor(nrow(df)/no_of_groups))

#      A        B        C
#1.987179 1.145299 1.735959
#2.321805 1.375963 2.045221
#2.684130 1.628785 2.381320
#3.073362 1.903134 2.743489

Теперь будет возвращаться только последние 4 строки в последней группе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...