【发布时间】:2019-06-22 11:06:54
【问题描述】:
我有一个关于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")))
我需要具有以下列的重塑矩阵:
客户 Phase1earlyTotal Phase2earlyTotal....Phase4earlyTotal...Phase1_ Ontimetotal...Phase4_Ontimetotal...Phase1LateTotal_Phase4LateTotal。例如,Phase1earlytotal 包括 Phase=1 和 Status=Early 的金额之和。
目前我使用以下脚本,它不起作用,因为我不知道 如何结合相位和状态柱。
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()
【问题讨论】:
-
你可以使用
dcastfromreshape2ordata.table -
嗨,我的数据如下所示:客户阶段状态金额
1 1096261 2 Ontime 21216. 2 1096261 3 Ontime 42433. 3 1169502 1 Ontime 200320 . 4 1169502 2 准时 84509. 5 1169502 3 准时 863940. 6 1172386 1 准时 467078。 -
@Cherry 请更新您的问题并在此处包含
dput(your_data)的输出。请参阅@jay.sf 发布的链接以获取参考。
标签: r reshape data-manipulation