У меня есть вопрос о манипулировании структурой матрицы в R, здесь мне нужно сначала транспонировать матрицу и объединить столбцы месяца и состояния, заполнив отсутствующие значения 0. Здесь у меня есть пример, в настоящее время мои данные как ниже.Это кажется очень сложным.Буду признателен, если кто-нибудь может помочь в этом.Спасибо.
Привет, мои данные выглядят следующим образом:
structure(list(Customer = c("1096261", "1096261", "1169502",
"1169502"), Phase = c("2", "3", "1", "2"), Status = c("Ontime",
"Ontime", "Ontime", "Ontime"), Amount = c(21216.32, 42432.65,
200320.05, 84509.24)), .Names = c("Customer", "Phase", "Status",
"Amount"), row.names = c(NA, -4L), class = c("grouped_df", "tbl_df",
"tbl", "data.frame"), vars = c("Customer", "Phase"), drop = TRUE, indices
= list(
0L, 1L, 2L, 3L), group_sizes = c(1L, 1L, 1L, 1L), biggest_group_size = 1L,
labels = structure(list(
Customer = c("1096261", "1096261", "1169502", "1169502"),
Phase = c("2", "3", "1", "2")), row.names = c(NA, -4L), class =
"data.frame", vars = c("Customer",
"Phase"), drop = TRUE, .Names = c("Customer", "Phase")))
Мне нужна измененная матрица со следующими столбцами:
Customer Phase1earlyTotal Phase2earlyTotal .... Phase4earlyTotal... Phase1_ Ontimetotal ... Phase4_Ontimetotal ... Phase1LateTotal_Phase4LateTotal.Например, Phase1earlytotal включает сумму суммы с Phase = 1 и Status = Early.
В настоящее время я использую следующие сценарии, которые не работают, потому что я не знаю, как объединить Phase и Stuatus Column.
mydata2<-data.table(mydata2,V3,V4)
mydata2$V4<-NULL
datacus <- data.frame(mydata2[-1,],stringsAsFactors = F);
datacus <- datacus %>% mutate(Phase= as.numeric(Phase),Amount=
as.numeric(Amount)) %>%
complete(Phase = 1:4,fill= list(Amount = 0)) %>%
dcast(datacus~V3, value.var = 'Amount',fill = 0) %>% select(Phase, V3)
%>%t()