【发布时间】:2020-06-23 20:14:22
【问题描述】:
我想计算capacity 对应的Level 的ElevationData data.frame。我确实有ElevationStoragedata.frame,我有标准的Elevation 和Storage 容量曲线数据。如果来自ElevationData 的任何Level 值等于ElevationStorage 的任何Elevation 值,我将使用其对应的Storage 值,否则我需要在Level 和Elevation 数据之间进行插值并使用插值Storage 值。这是我不完整的代码,因为我没有提供完整代码的想法
library(tidyverse)
library(lubridate)
ElevationData <- data.frame(Date = seq(as.Date("2010-01-01"), to = as.Date("2010-01-31"), by = "days"),
Level = runif(31,364.1,364.7),
Outflow = runif(31,1,25))
ElvationStorage <- data.frame(Elevation = c(362.5,363.0,363.5,364.0,364.5,365.0,365.5,366.0),
Stroage = c(1000,2500,3500,4500,6000,7500,9000,10000))
ElevationData$Capacity <- if (ElevationData$Level == ElvationStorage$Elevation){
Capacity = ElvationStorage$Stroage
} else
# linear interpolation
Capacity =
}
输出:
【问题讨论】:
标签: r dataframe if-statement interpolation linear-interpolation