You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R按Stage分组计算压力时间斜率dp.dt行数不匹配报错如何解决

解决方案

你可以使用以下两种简洁的方式实现需求,均不需要额外安装其他依赖包:

方法1:直接补全diff返回结果的长度

利用c()在diff计算的n-1个结果末尾拼接1个NA,使其长度和分组内的行数匹配:

library(dplyr)
df <- df %>% 
  group_by(Stage) %>%
  mutate(dp.dt = c(diff(Pressure)/as.numeric(diff(DateTime)), NA_real_))

说明:使用NA_real_而非NA是为了明确数值类型,避免出现列类型不兼容的报错。

方法2:用lead()函数实现(逻辑更直观)

lead()函数默认取当前行的下一行数值,分组内最后一行的返回值自动为NA,不需要额外处理长度:

library(dplyr)
df <- df %>%
  group_by(Stage) %>%
  mutate(dp.dt = (lead(Pressure) - Pressure) / as.numeric(lead(DateTime) - DateTime))

两种方法输出的结果完全符合你给出的示例要求。

内容的提问来源于stack exchange,提问作者new2data

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:45:07