在R中计算时间序列数据框15分钟间隔的热容差值
两种方案都可行,更推荐预处理数据框
预处理数据框(优先选)
直接在数据里新增差值列,逻辑清晰,后续复用方便。因为数据是1秒间隔,用dplyr的lag()函数指定n=900就能精准获取15分钟前的热容值,再计算差值:library(dplyr) # 新增15分钟间隔的热容差值列 df <- df %>% mutate(Heat_Capacity_Diff = Heat_Capacity - lag(Heat_Capacity, n = 900))之后做动画时,直接把y轴映射到
Heat_Capacity_Diff即可,和你原来的ggplot动画逻辑完全一致。注意前900行没有对应历史数据,lag()会返回NA,你可以用filter(!is.na(Heat_Capacity_Diff))剔除这些行,或者用replace_na()填充默认值。ggplot内直接计算
不用修改原数据框,直接在aes()里写差值计算逻辑:library(ggplot2) library(gganimate) ggplot(df, aes(x = Date_Time, y = Heat_Capacity - lag(Heat_Capacity, n = 900))) + geom_line() + # 保留你原来的动画设置,比如transition_time(Date_Time)等 transition_time(Date_Time)这种方式不用改动数据,但y轴的表达式偏长,可读性差一点,要是后续动画里还要用到这个差值,得重复写计算逻辑。
内容的提问来源于stack exchange,提问作者Golem
相关产品推荐
相关产品推荐

