为分组频率数据计算R中的密度()

为分组频率数据计算R中的密度(),r,aggregation,kernel-density,R,Aggregation,Kernel Density,这应该是一个非常简单的问题,但我在任何地方都找不到答案(部分原因是我不确定要查询什么) 在R中,很容易计算以下物质的密度: c(1, 2, 2, 2, 3, 5, 5, 7, 8, 10, 10, 10) 你只要做: density(c(1, 2, 2, 2, 3, 5, 5, 7, 8, 10, 10, 10)) 问题是,如果我的数据有一个像这样的“未分组”向量,它将太大,R(或构建数据集的查询引擎)无法处理。因此,我需要在初始查询中使用groupby和COUNT(*)来压缩我的结果(因此

这应该是一个非常简单的问题,但我在任何地方都找不到答案(部分原因是我不确定要查询什么)

在R中,很容易计算以下物质的密度:

c(1, 2, 2, 2, 3, 5, 5, 7, 8, 10, 10, 10)
你只要做:

density(c(1, 2, 2, 2, 3, 5, 5, 7, 8, 10, 10, 10))
问题是,如果我的数据有一个像这样的“未分组”向量,它将太大,R(或构建数据集的查询引擎)无法处理。因此,我需要在初始查询中使用
groupby
COUNT(*)
来压缩我的结果(因此,使用
rep()
来扩展计数没有帮助)。给定这样一个“计数”的数据帧,我如何计算帧的密度(对于KDE图),如:

Value Count
1     1
2     3
3     1
5     2
7     1
8     1
10    3

为了清楚起见,我确实需要一个密度图,而不是直方图。

只需使用权重参数

density(d$Value, weights=d$Count/sum(d$Count))

(编辑以解释第一条评论)

我可能会将权重设置为
d$Count/sum(d$Count)
,但这非常有效。是的,如果不这样做,您会收到警告,说明它不是真实密度。我编辑了原始帖子以包含你的建议。