【发布时间】:2019-10-03 05:00:59
【问题描述】:
我有一些河流沉积数据。每条河流由2个站点组成,有2-3个沉淀板。实验进行了10年,每隔1-3年测量每个板上沉积物的沉积物深度(mm)。我想知道是否可以使用 R 循环来计算每条河流的每个站点的沉降率?附上样本数据。
River Site Plate Year "Sedement
depth(mm)"
ES1 SiteA Plate 1 2009 220
ES1 SiteA Plate 1 2011 207
ES1 SiteA Plate 1 2012 203
ES1 SiteA Plate 1 2013 210
ES1 SiteA Plate 1 2015 211.7
ES1 SiteA Plate 1 2016 218
ES1 SiteA Plate 1 2018 207
ES1 SiteA Plate 1 2019 219.7
ES1 SiteA Plate 2 2009 183
ES1 SiteA Plate 2 2011 173
ES1 SiteA Plate 2 2012 180
ES1 SiteA Plate 2 2013 180
ES1 SiteA Plate 2 2015 184
ES1 SiteA Plate 2 2016 185
ES1 SiteA Plate 2 2018 178
ES1 SiteA Plate 2 2019 185.3
ES2 SiteB Plate 1 2009 191
ES2 SiteB Plate 1 2011 190
ES2 SiteB Plate 1 2012 190
ES2 SiteB Plate 1 2013 191
ES2 SiteB Plate 1 2015 192.3
ES2 SiteB Plate 1 2016 195
ES2 SiteB Plate 1 2018 186
ES2 SiteB Plate 1 2019 190.3
ES2 SiteB Plate 2 2009 212
ES2 SiteB Plate 2 2011 214
ES2 SiteB Plate 2 2012 205
ES2 SiteB Plate 2 2013 203
ES2 SiteB Plate 2 2015 190.7
ES2 SiteB Plate 2 2016 197
ES2 SiteB Plate 2 2018 188
ES2 SiteB Plate 2 2019 191.3
每个站点的沉降率可以计算如下;
例如ES1,SiteA,2015 年 = 板 1 (211.7-210)/2(年差异) 板 2 (184-180)/2
Sedimentation rate for 2015 = avg [Plate 1 (211.7-210)/2(year diff)+ Plate 2 (184-180)/2]
【问题讨论】:
-
请将输入数据以文本形式发布
-
最好以可复制粘贴的格式包含您的数据,例如来自
dput的输出,并包含所需输出的明确声明。如果您包含到目前为止您尝试过的代码以及它为什么不起作用的解释(例如,您遇到的错误),这也很有帮助。diff在这里很有用(查看?diff),而不是使用循环,尝试在dplyr中使用group_by或在data.table中使用by,并在进行计算之前按板块和站点分组。 -
感谢您告诉我。我刚刚将我的数据添加为文本。
-
谢谢 Lyngbakr,我会用 dplyr 试试
标签: r