【发布时间】:2020-03-05 18:24:32
【问题描述】:
我有一个数据框df,它总结了几个月内不同深度(5 米T5、15 米T15、25 米T25 和35 米T35)的每小时水温。举个例子:
df<- data.frame(DateTime=c("2018-08-09 08:00:00","2018-08-09 09:00:00","2018-08-09 10:00:00","2018-08-09 11:00:00","2018-08-09 12:00:00","2018-08-09 13:00:00"),
T5=c(14.5,18.4,21.3,27.8,16.5,21.5),
T15=c(13.8,16.3,16.2,17.8,19.3,20.1),
T25=c(16.0,17.2,18.3,15.9,21.4,17.3),
T35=c(16.1,15.7,16.2,15.6,17.0,16.3))
df$DateTime<- as.POSIXct(df$DateTime, formtat="%Y-%m-%d %H:%M:%S",tz="UTC")
df
DateTime T5 T15 T25 T35
1 2018-08-09 08:00:00 14.5 13.8 16.0 16.1
2 2018-08-09 09:00:00 18.4 16.3 17.2 15.7
3 2018-08-09 10:00:00 21.3 16.2 18.3 16.2
4 2018-08-09 11:00:00 27.8 17.8 15.9 15.6
5 2018-08-09 12:00:00 16.5 19.3 21.4 17.0
6 2018-08-09 13:00:00 21.5 20.1 17.3 16.3
我想要的是计算一些与深度之间的温度差异相关的变量。我想计算变量“列中的最大水温机会”(MWTCC),它反映了整个水柱的连续列之间的最大水温变化。稍后,我还想计算变量“5 到 15 米之间的水温变化”(WTC10)、“15 到 25 米之间的水温变化”(WTC20)和“25 到 25 米之间的水温变化” 35 米” (WTC30)。我希望上述示例的下一个结果:
> df
DateTime T5 T15 T25 T35 MWTCC WTC10 WTC20 WTC30
1 2018-08-09 08:00:00 14.5 13.8 16.0 16.1 2.2 0.7 2.2 0.1
2 2018-08-09 09:00:00 18.4 16.3 17.2 15.7 2.1 2.1 0.9 1.5
3 2018-08-09 10:00:00 21.3 16.2 18.3 16.2 5.1 5.1 2.1 2.1
4 2018-08-09 11:00:00 27.8 17.8 15.9 15.6 10.0 10.0 1.9 0.3
5 2018-08-09 12:00:00 16.5 19.3 21.4 17.0 4.4 2.8 2.1 4.4
6 2018-08-09 13:00:00 21.5 20.1 17.3 16.3 2.8 1.4 2.8 1.0
有什么简单快捷的方法来计算所有的吗?我对使用 data.table 包特别感兴趣,尽管任何方式都可以。
提前致谢
【问题讨论】:
标签: r dplyr data.table