首页 > 解决方案 > 数据表rlang问题中的列总和

问题描述

我有以下数据表:

structure(list(Date = c("2015-04-01", "2015-04-01", "2015-04-01", "2015-04-01", "2015-04-01", "2015-04-01"), Category = structure(c(4L, 4L, 4L, 5L, 5L, 6L), .Label = c("Bakery ", "Branded goods", "Breakfast ", "Canned/Packaged ", "Cooking essentials ", "Household ", "NO CATEGORY", "Personal care", "Stationary ", "Vehicle accessories"), class = "factor"), Sub_Category = c("carbonated drink ", "carbonated drink ", "carbonated drink ", "Dairy ", "Dairy ", "Stationary "), Product = c("soft drink", "soft drink", "soft drink", "Butter ", "Butter ", "A4 paper"), Brand = c("7 up ", "7 up ", "7 up ", "Amul", "Amul", "NO BRAND"), Day = c(1L, 1L, 1L, 1L, 1L, 1L), Month = c(4L, 4L, 4L, 4L, 4L, 4L), Year = c(2015L, 2015L, 2015L, 2015L, 2015L, 2015L), MRP = c("55", "25", "70", "37", "37", "0.5"), Quantity = c(1, 1, 1, 1, 1, 20), Sales = c(55, 25, 70, 37, 37, 10), Wday = c("Wednesday", "Wednesday", "Wednesday", "Wednesday", "Wednesday", "Wednesday"), Week = c(13L, 13L, 13L, 13L, 13L, 13L), X = c(NA, NA, NA, NA, NA, NA), X. = c(NA, NA, NA, NA, NA, NA)), .Names = c("Date", "Category", "Sub_Category", "Product", "Brand", "Day", "Month", "Year", "MRP", "Quantity", "Sales", "Wday", "Week", "X", "X."), sorted = "Date", class = c("data.table", "data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x00000000001b0788>)

并且我希望显示跨越整个日期列的每一天的每种类别的(数量)或总和(销售额)的总和。

我努力了 :

data2 <- data %>% group_by(data$Date) %>% summarise_each(funs(sum))

但我得到:

is_list(x) 中的错误:找不到对象“rlang_is_list”

也试过:

aggregate(cbind(data$Category,data$Sales,data$Quantity)~data$Date,
               data=data,FUN=sum)

这会产生完全不同的输出。;/

有没有办法做到这一点?

即使卸载了 rlang、dplyr 和 ggplot2 包,错误仍然存​​在。有没有解决的办法 ?

预期的输出是这样的:在此处输入图像描述

提前致谢

标签: rdplyrdata.table

解决方案


这是使用data.tablereshape2处理您提供的数据的更简单的方法

library(reshape2)
library(data.table)
setDT(data)
data2<-dcast(data[,.(Quantity=sum(Quantity),Sales=sum(Sales)),by=.(Category,Date)],Date~Category,value.var = c("Quantity","Sales"),fun.aggregate = sum)

你有销量和数量


推荐阅读