Как я могу сначала транспонировать матрицу, а затем заполнить значение для пропущенного месяца с 0 - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть вопрос о манипулировании структурой матрицы в R, как я могу сначала транспонировать матрицу, а затем заполнить значение для пропущенного месяца нулем. Например, у меня есть данные для магазина фруктов с количеством проданных яблок и апельсиновкаждый месяц, как следует, число должно быть числовым.

fruit   Month   amount
apple   1   243
apple   7   66
apple   8   22
orange  2   89
orange  5   12

Однако я хотел бы переместить Ма и установить для яблока и апельсина количество пропущенных месяцев на 0, как показано ниже, не могли бы выпомочь с этим?

Month   1   2   3   4   5   6   7   8   9   10  11  12
apple   243 0   0   0   0   0   66  22  0   0   0   0
orange  0   89  0   0   12  0   0   0   0   0   0   0

1 Ответ

0 голосов
/ 23 ноября 2018
library(reshape2)
library(tidyverse)
data <- data.frame(Ma[-1,],stringsAsFactors = F); names(data) <- Ma[1,]
data <- data %>% mutate(Month = as.numeric(Month),amount = as.numeric(amount)) %>%
  complete(Month = 1:12,fill= list(amount = 0)) %>% 
  dcast(Month~fruit, value.var = 'amount',fill = 0) %>% select(Month, apple, orange) %>% t()

сначала установите libs:

install.packages(c('tidyverse','rechape2'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...