использование dcast (reshape2) для формирования данных в широкоформатном формате заполняет ячейки числом вместо значения - PullRequest
1 голос
/ 11 апреля 2019

У меня есть фрейм данных в длинном формате (https://docs.google.com/spreadsheets/d/15jDW1pCYs7VD6MAH9GHmYrP-zf8WjsGj9F3qVXGijDM/edit?usp=sharing), который выглядит так:

      objectid  timestamp code_bbch_surveyed
   1:   702509 2018-03-23                 NA
   2:   702509 2018-03-23                 NA
   3:   702509 2018-03-23                 NA
   4:   702509 2018-03-23                 NA
   5:   702509 2018-03-23                 NA
  ---                                       
5581:   293171 2018-10-17               GMA3
5582:   293171 2018-10-17               GMA3
5583:   293171 2018-10-17               GMA3
5584:   293171 2018-10-17               GMA3
5585:   293171 2018-10-17               GMA3

Я хочу привести его к широкоформатному формату, чтобы каждая строка была уникальной objectid, каждый столбец - уникальным timestamp, а ячейки заполнялись соответствующими code_bbch_surveyed.

Я пробовал то, что кажется наиболее логичной реализацией dcast, вот так:

dcast(setDT(df_scr), objectid ~ timestamp, value.var = 'code_bbch_surveyed')

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

Таким образом, вместо вывода, подобного этому (row1):

        objectid 2018-03-23 2018-04-23 2018-05-21 2018-06-20 2018-07-09 2018-08-15 2018-09-20 2018-10-17
 1:     8100         27         22         16         14         15         14         12         15

Я хотел бы видеть вывод, подобный этой строке (1):

        objectid 2018-03-23 2018-04-23 2018-05-21 2018-06-20 2018-07-09 2018-08-15 2018-09-20 2018-10-17
 1:     8100         SCR2         WWH3    [null]     [null]     [null]    [null]     [null]     [null]

...