【发布时间】:2013-02-10 22:06:35
【问题描述】:
我正在使用 R 为具有拟合正态分布线的患病和健康个体创建大小频率直方图。我有 2 个问题正在寻求建议。
- 如何从聚合数据创建直方图?下面的示例表汇总了每种尺寸内患病和健康个体的数量。
输入(数据)
'structure(list(Size = c(25L, 28L, 31L, 45L, 60L), diseased = c(0L,
22L, 10L, 5L, 2L), healthy = c(55L, 40L, 15L, 7L, 2L)), .Names = c("Size",
"diseased", "healthy"), class = "data.frame", row.names = c(NA,
-5L))'
2.如何将两个直方图叠加到 1 个带有拟合正态分布线的图形中。
我已经为聚合数据 ggplot(data,aes(x=Size,y=diseased))+geom_bar(stat='identity') 尝试了以下代码,效果很好,但我不知道如何添加健康个体的直方图。
我还尝试使用以下文本将汇总数据(称为“数据”)恢复为原始原始格式: 原始
我收到以下错误消息:rep(1:data, times=data$diseased) 中的错误:'times' 参数无效。从以前的 cmets 看来,rep 函数似乎无法处理“0”
【问题讨论】:
-
您能否通过显示
dput(data)或dput(head(data))的结果来使您的数据可重现?另外,你的列怎么会有不同的行数? -
@DavidRobinson,我相信它与 buildakicker 链接的帖子完全相同。
-
@Arun:这是可能的,虽然我有点不确定,如果没有来自 OP 的更多澄清。
-
是的,可能。
Size中的值的数量与disease和healthy的值不匹配。并且 OP 已经在ggplot中提供了一个 data.frame 作为输入,但是却不厌其烦地提供了单独的数据......