Изменение формы кадра данных в r в соответствии с самой длинной строкой - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть кадр данных 189 на 1443, содержащий данные о частоте сердечных сокращений за 189 дней для каждой минуты дня:

year  month day   `00:00` `00:01` `00:02` `00:03` `00:04` `00:05` ...
2018   04   07      NA      63       NA      NA     62      NA    ...
2018   04   08      57      NA       58      NA     NA      NA    ...
2018   04   09      NA      NA       NA      52     NA      51    ...

Мне нужно преобразовать этот кадр данных в 189 на 131 (что является наиболееколичество записей за один день), поэтому в основном выровняйте все записи по левому краю (таким образом, чтобы строки с <131 записями имели бы NA от столбца x до 131).</p>

Конечный результат должен выглядеть следующим образом:

year  month day    `1`     `2`      `3`     `4`    `5`     `6`    ...  `131`
2018   04   07      63      62       63      64     61      60    ...   59
2018   04   08      57      58       56      55     56      55    ...   NA
2018   04   09      52      51       49      50     48      52    ...   NA
.
.
.

Может ли кто-нибудь помочь мне с этим?К сожалению, я понятия не имею, с чего начать.

1 Ответ

0 голосов
/ 27 февраля 2019

Посмотрите, работает ли это для вас:

library(tidyverse)

df %>%
  gather(minute, value, -c(year:day)) %>%
  drop_na() %>%
  group_by(year, month, day) %>%
  arrange(year, month, day, minute) %>%
  mutate(row = row_number()) %>%
  select(-minute) %>%
  spread(row, value)

# A tibble: 3 x 5
# Groups:   year, month, day [3]
   year month day     `1`   `2`
  <dbl> <chr> <chr> <dbl> <dbl>
1  2018 04    07       63    62
2  2018 04    08       57    58
3  2018 04    09       52    51
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...