跨多个变量的总计数
sum count across multiple variables
我觉得这应该很容易,但我做不到。
数据是三列,第四列是我要查找但无法渲染的内容:
eg_data <- data.frame(
id = c(1,1,1,2,2,3,3,3,3,3,3,4,4,5,5,5,5),
date = c("11/1", "11/1", "11/2", "11/1", "11/5", "11/5", "11/4", "11/1",
"11/1", "11/2", "11/4", "11/3", "11/3", "11/2", "11/3", "11/2", "11/1"),
sales = c(2,5,4,1,2,1,4,5,3,8,1,2,4,1,1,3,2),
sum_id_day = c(7,7,4,1,2,1,5,8,8,8,5,6,6,4,1,4,2))
在此示例中,对于每个 ID/day 组合,我需要查看总销售额。因此,对于 11 月 1 日的 ID 1,共有 7 次销售。我不需要按行计算总和,我需要每个组合的总和。
我尝试了 ave/count 的聚合和变体,但我将 运行 保留在因子水平不相同的问题中,替换有 X 行,数据有 X + Y 行,参数必须具有相同的长度等。我已经尝试将因子转换为字符、日期等……没有骰子。
此外,我需要它作为数据框中的一个新变量,我不需要它仅仅显示在控制台中; dplyr 非常适合,但我需要它作为变量。
感谢任何帮助,抱歉这可能是一个初级问题。
谢谢!
按'id'、'date'
分组后,我们可以使用mutate
library(dplyr)
eg_data <- eg_data %>%
group_by(id, date) %>%
mutate(TotalSum = sum(sales))
或者用ave
eg_data$TotalSum = with(eg_data, ave(sales, id, date, FUN = sum))
我觉得这应该很容易,但我做不到。
数据是三列,第四列是我要查找但无法渲染的内容:
eg_data <- data.frame(
id = c(1,1,1,2,2,3,3,3,3,3,3,4,4,5,5,5,5),
date = c("11/1", "11/1", "11/2", "11/1", "11/5", "11/5", "11/4", "11/1",
"11/1", "11/2", "11/4", "11/3", "11/3", "11/2", "11/3", "11/2", "11/1"),
sales = c(2,5,4,1,2,1,4,5,3,8,1,2,4,1,1,3,2),
sum_id_day = c(7,7,4,1,2,1,5,8,8,8,5,6,6,4,1,4,2))
在此示例中,对于每个 ID/day 组合,我需要查看总销售额。因此,对于 11 月 1 日的 ID 1,共有 7 次销售。我不需要按行计算总和,我需要每个组合的总和。
我尝试了 ave/count 的聚合和变体,但我将 运行 保留在因子水平不相同的问题中,替换有 X 行,数据有 X + Y 行,参数必须具有相同的长度等。我已经尝试将因子转换为字符、日期等……没有骰子。
此外,我需要它作为数据框中的一个新变量,我不需要它仅仅显示在控制台中; dplyr 非常适合,但我需要它作为变量。
感谢任何帮助,抱歉这可能是一个初级问题。
谢谢!
按'id'、'date'
分组后,我们可以使用mutate
library(dplyr)
eg_data <- eg_data %>%
group_by(id, date) %>%
mutate(TotalSum = sum(sales))
或者用ave
eg_data$TotalSum = with(eg_data, ave(sales, id, date, FUN = sum))