我有一个来自标记动物的潜水行为数据集,我正在努力为数据拟合曲线,我认为主要是因为在这种情况下 X 变量是分类的,而不是连续的数据。让我介绍一下背景:
我的数据集有 14 个变量的 184 个观察值:
tagID ddmmyy Hour.GMT.Hour.Local. X0 X3 X10 X20 X50 X100 X150 X200 X300 X400
1 122097 250912 0 9 0.0 0.0 0.3 12.0 15.3 59.6 12.8 0.0 0 0
2 122097 260912 0 9 0.0 2.4 6.9 5.5 13.7 66.5 5.0 0.0 0 0
3 122097 260912 6 15 0.0 1.9 3.6 4.1 12.7 39.3 34.6 3.8 0 0
4 122097 260912 12 21 0.0 0.2 5.5 8.0 18.1 61.4 6.7 0.0 0 0
5 122097 280912 6 15 2.4 9.3 6.0 3.4 7.6 21.1 50.3 0.0 0 0
6 122097 290912 18 3 0.0 0.2 1.6 6.4 41.4 50.4 0.0 0.0 0 0
我感兴趣的变量是X0:X400
. 这些是深度箱,这些值表示动物在该深度箱中度过的那段时间的总时间百分比。所以在第一行,它在 0-3 米之间花费了 0% 的时间,在 100-150 米之间花费了 59.6% 的时间,等等。在我最后一个问题的一些答案的帮助下,我计算了该动物在每个深度箱中花费的平均时间百分比:
diving.means <- colMeans(diving[, -(1:4)])
lowerIntervalBound <- gsub("X", "", names(diving)[-(1:4)])
lowInts <- as.numeric(lowerIntervalBound)
plot(x=factor(lowInts), y=diving.means, xlab="Depth Bin (Meters—Lower Bound)", ylab="% Time Spent")
这为我提供了这个情节:
不幸的是,因为我的数据是平均值(单个值),而不是频率,我无法弄清楚如何将它们绘制为直方图......这既不是这里也不是那里,因为我可以轻松地将这些作为值输入并制作如有必要,需要的情节..但这现在可以通过分析来解决。
现在我想比较多种动物和不同的时间箱。我最终会制定一个系统来衡量在垃圾箱中花费的时间以获得平均深度以进行统计比较,但现在我只想在视觉上、定性地比较它们,以及生成可以在演示文稿中使用的图,并最终出版物。我想做的是创建一条代表我的“直方图”的密度曲线,然后将来自多个场景的这些曲线绘制在一个图上进行比较。但是,我似乎无法使用该density()
功能进行这项工作,因为我没有频率数据。我已经计算了密度,作为每个箱中花费的时间百分比......但它们在我的数据集中没有以原始格式表示为类别的频率,
这是我的数据的样子:
> diving.means
X0 X3 X10 X20 X50 X100 X300 X400 X150 X200
3.330978261 3.299456522 8.857608696 17.646195652 30.261413043 29.356521739 6.445108696 0.664130435 0.135869565 0.001630435
或者:
> df<-data.frame(lowInts, diving.means)
> df
lowInts diving.means
X0 0 3.330978261
X3 3 3.299456522
X10 10 8.857608696
X20 20 17.646195652
X50 50 30.261413043
X100 100 29.356521739
X150 150 6.445108696
X200 200 0.664130435
X300 300 0.135869565
X400 400 0.001630435
我想要制作的东西看起来或多或少是这样的(从出版物中随机抽取——轴与我的数据无关):
然后能够隔离曲线并将它们绘制在一起。
感谢您的任何帮助,您可以提供!