首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于R中另一个数据的线性插值值

基于R中另一个数据的线性插值值
EN

Stack Overflow用户
提问于 2022-07-21 01:00:48
回答 2查看 49关注 0票数 1

我有两个数据:

代码语言:javascript
运行
复制
cash_flows

    coupon_date
1   2026-07-31   
2   2026-01-31    
3   2025-07-31     
4   2025-01-31    
5   2024-07-31    
6   2024-01-31    

discount_rates

  date        df 
1 2023-07-25  0.9806698 
2 2024-07-25  0.9737091 
3 2025-07-25  0.9432057 
4 2026-07-27  0.9109546 
5 2027-07-26  0.8780984 

我想在cash flows中创建一个新列,其中包含discount rates中的dr列的线性插值值。

因此,期望的产出是:

代码语言:javascript
运行
复制
cash_flows

    coupon_dates  new_column
1   2026-07-31    0.910594
2   2026-01-31    0.926509
3   2025-07-31    0.942678
4   2025-01-31    0.957831
5   2024-07-31    0.973208
6   2024-01-31    0.977056

我已经下载了forecast包,但仍然不完全确定如何实现这一目标。任何帮助都是非常感谢的。

复制数据文件的代码:

代码语言:javascript
运行
复制
cash_flows <- data.frame(coupon_date = as.Date(c("2026-07-31","2026-01-31","2025-07-31", "2024-07-31","2024-01-31")))
drdr <- data.frame(date = as.Date(c("2023-07-25","2024-07-25","2025-07-25", "2026-07-27","2027-07-26")), df = c(0.9806698, 0.9737091, 0.9432057, 0.9109546, 0.8780984))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-21 01:27:46

?approx可用于线性插值。

x数据中传递源drdry变量,并指定要根据cash_flows$coupon_date x值(xout=)知道插值的输出y值:

代码语言:javascript
运行
复制
cash_flows$new_column <- approx(x=drdr$date, y=drdr$df, xout=cash_flows$coupon_date)$y
cash_flows
#  coupon_date new_column
#1  2026-07-31  0.9105935
#2  2026-01-31  0.9265089
#3  2025-07-31  0.9426784
#4  2024-07-31  0.9732077
#5  2024-01-31  0.9770563

与您的预期输出完全匹配( cash_flows中的一行除外,它不在您的代码中以复制data.frames,而是在问题的前面显示)。

票数 0
EN

Stack Overflow用户

发布于 2022-07-21 01:25:45

这是一个选择。我们将线性模型df ~ datedrdr进行拟合。然后使用predict来估计cash_flows中日期的df。请注意,这些数字并不完全符合您的预期输入。

代码语言:javascript
运行
复制
fit <- lm(df ~ date, data = drdr)
cash_flows %>%
    mutate(new_column = predict(fit, newdata = data.frame(date = coupon_date)))
#  coupon_date new_column
#1  2026-07-31  0.9101729
#2  2026-01-31  0.9234352
#3  2025-07-31  0.9369172
#4  2024-07-31  0.9636614
#5  2024-01-31  0.9769969
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73059589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档